2016-05-26
新大楼903
曹冬林
定义:保证原有功能的情况下,重组、重排代码
Y:重构应随时随地进行;当看到一个更好的方式来做同一件事的时候
N:稳定的代码;别人的代码;没有重构方案的情况下
代码的坏味道:
- Duplicate Code
- Long Method
- Large Class
- Long Parameter List
- Divergent Change(发散式变化)
- Shotgun Surgery(散弹式修改)
- Feature Envy(依恋情结)
- Switch Statements(Switch惊悚现身)
常用的重构手段:
- Extract Method(提炼函数)
- Extract Class(提炼类)
- Inline Class(将类内联化)
- Move Method(搬移函数)
重构技巧:
- 分解表达式(用函数代替条件表达式)
- 移除双重否定
- 减少临时变量
- 提前判断
- 冗余方法的分割(提炼方法)
- 提取代码中的常量
重构建议:
- 每次一小步,有目的性的重构
- 必须测试通过
- 针对问题而重构
- 随时随地重构
- 重构结果不改变功能
- 不要在发布前去重构