- Ref:
重构-改善既有代码的设计 - 什么是重构(Refactoring)
重构就是在不引入新功能的情况下,对代码进行改进。 - 重构的目的
a)改进软件设计
b)增强代码可读性 - 何时重构
随时随地的应重构(但在期限快来临时,不要重构)。但应该找到一个平衡点,不要让重构无止境地进行下去。
一般在重复写同样功能的代码时、Fix Bug时、代码审查时。
但是重构的前提是现有代码能够在大部分情况下能正常运行;如果设计特别垃圾、或代码特别混乱,充满了错误,这时候应该重写而不是重构 - 重构的步骤
a)建立自动测试用例,以验证重构后代码能正确工作。 - 如何重构
- 命名规范
- 代码对齐
- 模块化
a)功能相同或相近的放在同一个代码块、函数、类、文件中。
b)降低模块间的耦合性 - 消除冗余
将冗余代码提取出来,放入一个独立的函数、独立的类、父类中 - 分解过长的代码块
代码块越小,功能越简单,修改越容易。
a)将过长的代码块、函数,过大的类、文件,分解成功能相对独立的小模块
b)将逻辑复杂的函数,分解成多个小的函数
缺点:
a)过于小的模块,会增加了理解代码的难度
b)修改接口参数列表可能引起连锁反应 - 解决长参数列表问题
使用结构或类,减少参数个数 - 优化注释
a)删除垃圾注释
b)代码最好能自注释
c)引入解释性变量以省去注释; int serviceStarted = xxx.getxxx();
- xxx