这一章通过讲解租碟的案例来初步解释了重构的意义,有些问题何老师已经讲过了,比如说变量命名,分割代码等等
1.1 起点
如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便地那么做,那就先重构那个程序,使特性的添加比较容易进行,然后再添加特性。
1.2 重构的第一步(测试)
每当我要进行重构的时候,第一个步骤永远相同:我得为即将修改的代码简历一组可靠的测试环境。
重构之前,首先检查自己是否有一套可靠的测试机制。这些测试必须有自我检验(self-checking)的能力。
什么是自我检验(self-checking)能力。
1.3 分解并重组
分解长的函数 代码块越小,代码的功能就越容易管理,代码的处理和搬移也就越轻松。
第一个步骤是找出代码的逻辑泥团(logical clump)并运用Extract Method(110)
重构技术系以微小的步伐修改程序。如果你犯下错误,很容易便可发现它。
更改变量名 任何一个傻瓜都能写出计算机可以理解的代码。惟有写出人类容易理解的代码,才是优秀的程序员。
搬移代码Move Method 绝大多数情况下,函数应该放在它所使用的数据的所属object(或说class)内。
Replace Temp with Query 尽量去除临时变量。P69
1.4 使用多态(polymorphism)