重构保障
1、建立测试环境(比如单元测试),确保重构后的代码不会带来新的 bugs。
1、建立测试环境(比如单元测试),确保重构后的代码不会带来新的 bugs。
重构前提
1、当一个函数或类履行了太多的职责。
2、当一个变更存在多个相同的修改点。
3、当需要为程序添加一个特性,而代码结构使你无法很方便地那么做。
1、当一个函数或类履行了太多的职责。
2、当一个变更存在多个相同的修改点。
3、当需要为程序添加一个特性,而代码结构使你无法很方便地那么做。
重构原则
1、尽量以最小的步伐修改程序。如果你犯下错误,很容易发现它。
2、使用有意义的命名,增强程序的可读性,代码本身应该能够表现自己的目的。任何一个 fool
1、尽量以最小的步伐修改程序。如果你犯下错误,很容易发现它。
2、使用有意义的命名,增强程序的可读性,代码本身应该能够表现自己的目的。任何一个 fool
都能写出计算机可以理解的代码,惟有写出人类容易理解的代码,才是优秀的程序员。
3、函数应该放在它所使用数据所属的 object 内。
3、函数应该放在它所使用数据所属的 object 内。
重构手段
1、Extract Method,把一个昂长的方法按职责抽取为多个简洁的方法。
2、除去冗余的临时变量。往往一个临时变量的存在是为了保存一个运算的结果,可以考虑把临
1、Extract Method,把一个昂长的方法按职责抽取为多个简洁的方法。
2、除去冗余的临时变量。往往一个临时变量的存在是为了保存一个运算的结果,可以考虑把临
时变量及临时变量相关的运算抽取到一个单独的函数中。
3、合适的选择设计模式。
3、合适的选择设计模式。
重构节奏 - 测试、小修改、测试、小修改......正是这种节奏让重构变得快速和安全。
这一章以一个实例演示了重构的全过程,使我本来零星破碎的思维变得逐渐完整,当然这一章中所用到的重构手段和原则并不是全部,continue......