1. 重构定义
- 指对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。
- 使用一系列重构手法,在不改变软件可观察的前提下,调整其结构。
2. 重构注意事项
使用重构技术开发软件时,会产生俩种行为:添加新功能及重构。
- 在添加新功能时,不应该修改既有代码,只管添加新功能;
- 重构时就不能再添加功能,只管改进程序结构。
3. 目的
使软件更容易被理解和修改,且重构之后的软件功能一如既往
1) 改进软件设计:消除重复代码,可以确定所有事物和行为在代码中只表述一次,便于修改
2) 使软件更容易理解:准确说出我想要的!!!
3) 提高编程速度:良好的设计是维持软件开发速度的根本。设计越好,花在调试上面的时间会越少。
注:
a) 在理解整体设计之前,不要贸然修改代码
4. 重构的时机
事不过三,三则重构
1)添加功能时重构:
a) 在添加前将代码结构理清,就可以从中理解更多东西。
b) 代码的设计无法帮助我轻松添加所需要的特性
2)修补错误时重构:
3)复审代码时重构:
注:
a) 代码评审让更多人有机会提出有用的建议。
b) 不要害怕评审,评审能得到别人的帮助,使你获取汲取更多的经验
c) 结对编程
5. 难于相与的程序
1) 难于理解的程序,难于修改
2) 逻辑重复的程序,难以修改
3) 添加新行为时需要修改已有代码的程序,难以理解
4) 带复杂条件逻辑的程序,难以修改
6. 重构的难题
已发布的接口需要重构:让旧接口调用新接口,
a) 千万不要复制函数的实现
b) 不要过早地发布接口