接手刚上线版本的服务代码,一头焦虑。服务功能就是查询任务状态,做出判断是否下发任务,言简意赅为:过滤,查询,更新,下发。从功能入口开始,代码逻辑很清晰的走下去,可唯一诟病的地方在于:一个函数里面可以放俩种业务逻辑,行数在1000左右--逻辑清晰,代码臭长。
一、作为一个后台与客户端交互的服务,这样的代码容易出现逻辑小漏洞的地方。因为上千行的一个函数里面,都是对当前任务状态的细分,不利于分析(这种情况,画了个对应的viso状态转换图,然后和客户端勾兑任务之间的转换,果然发现了bug);
二、任务状态过滤过程中,根据状态,就直接修改状态写进返回。因为任务状态已经被修改,后期加入其他特殊的过滤规则,不利于实现(这种情况,拆分逻辑,区分任务和任务状态);
三、巨长函数拆分成多个功能函数组合,再按设计模式进行类接口维度的重构。
逻辑清晰,注重性能,易维护,屌丝必备~