1 起点
重构前的程序
- 无法复用
- 很难扩展
- 很难修改
- 很容易引入bug
2 重构的第一步
重构前,先检查自己是否有一套可靠的测试环境。这些测试环境必须有自我检验能力。
3 分解并重组statement()
- 代码块愈小,代码的功能就愈容易管理,代码的处理和移动也就愈轻松。
- 任何不会被修改的变量都可以被当成参数传入新的函数,至于会被修改的变量需要慎重。如果只有一个变量会被修改,可以把它当做返回值。
- 重构步骤的本质: 由于每次修改的幅度都很小,所以任何错误都很容易被发现。
- 重构技术就是以微小的步伐修改程序,如果犯下错误很容易便可发现。
- 好的代码应该清楚表达出自己的功能,变量名称是代码清晰的关键。修改变量名称可以提高代码清晰度。
- 任何一个傻瓜都能写出计算机 可以理解的程序,只有写出人类 容易理解的程序才是优秀的程序员。
- 重构本身不需要花费太多时间,大部分时间是用来弄清楚代码所做的事。
4 用多态取代与价格相关的条件逻辑
- 最好不要在另一个对象的属性基础上运用switch语句。如果不得不使用,也应该在对象自己的数据上使用,而不是在别人的数据上使用。
- 绝大多数情况下,函数应该放在它所使用的数据的所属对象内。
- 使用继承来适当组织类关系后,可以用多态取代switch语句。还有一个解决方法:State/Strategy模式(本次重构使用)。
- 重构时不需要担心性能和代码总量,优化时才要担心它们
5 结语
重构的节奏:测试、小修改、测试、小修改、测试、小修改……