重构的目标
最主要也是最重要的目标是为了加快开发速度,用最少的开发工作量创造更大的经济价值.
其次目的才是为了代码的优雅,整洁.(尽管如此,整洁的代码目的应该也是为了加快开发速度)
重构的思想和思路
- 如果想要用一个新的库,替换掉一个正在使用的库,可以先引入一层新的抽象,使其兼容新旧两个库的接口.一旦调用方已经完全使用这层抽象,那么替换库会容易的多.(通常叫做 New Branch By Abstraction)
- 如果有一块很糟糕的代码,但是我可以从来不修改他,那么这段代码就是不需要重构的. 只有当需要理解其工作原理,并进行修改时,我才需要重构这段代码.
- 如果重写这段代码,比重构还容易,那么就不要重构代码了,直接重写就可以了,但这往往并不容易,并且需要对代码的工作原理有较深入的理解, 才能不引入问题.
测试
- 测试的重点在于最有可能出错的地方,而不是尝试测试所有的public接口
- 测试用例之间应该是完全没有任何关联和依赖的