重构 改善既有代码的设计之第三章 代码的坏味道
3.1、神秘命名(Mysterious Name)
模块、类、函数、变量等的命名是编程中最难的两件事之一,正因为如此,改名可能是最常用的重构手法。
对应的重构手法有:改变函数声明、变量改名、字段改名
这里列举下我自己写过的奇怪的命名
3.2、重复代码(Duplicated Code)
确保接口行为在代码库中只表达过一次,如果两块代码只是相似不是完全相同,可以先移动语句,提炼出相同部分;
如果重复的代码段位于同一个超类的不同子类中,可以使用函数上移来避免在两个子类之间互相调用。
对应的重构手法有:移动语句、提炼函数、函数上移
3.3、过长函数(Long Function)
确保函数内代码处在同一层抽象级,无须担心进程内的函数开销,提倡小函数,作者在书中提到这个函数长度的阈值是6行;
我感觉目前工作中好像做不到每个接口都做到这么精简的地步,后来看了《工匠》有提到是65行,还有圈复杂度之说,
然后我目前遵循30行这个标准,至于之前写的酱香代码,后面出问题就再改了。
对应的重构手法有:提炼函数、以查询取代临时变量、引入参数对象、保持对象完整、以命令取代函数、分解条件表达式、
以多态取代条件表达式、拆分循环
总结
上面三种情况我觉得大家都干过,如果有心,还是要多注意