重构前提:构建测试体系。每次重构都是在保证系统稳定的前提下开展的,因此拥有好的测试体系是多么的重要。确保所有测试都完成自动化,让它们检查自己的测试结果。每重构一个功能就应该执行测试,检测是否可以通过。
重构原则:
1.重构是对软件的小改动
2.重构的目的是使软件更容易被理解和修改。
3.重构不能添加新功能,只能改进程序结构。不能添加任何测试,除非发现先前测试有遗漏的东西
4.在添加新功能时,考虑代码是否需要重构,使得更方便添加新功能
什么样的程序需要重构:
1.难以阅读的程序
2.逻辑重复的程序
3.添加新功能时需要修改已有代码的程序
4.带复杂条件逻辑的程序
重构和重写
重写:先有代码根本不能正常运行
重构:代码能够在大部分情况下正常运行
个人理解什么样的代码需要重构
1.有重复代码出现时,需要将重复代码统一写在一个方法或类中。
2.代码过长,超过一屏幕,考虑将代码分解成多个小的方法(函数)
3.代码重构需要和设计模式相结合使用,通过多态模式替换switch等
4.重构和效率结合,比如:订单金额计算方法,如果只有一种计算方法可以使用一个独立方法(函数)来管理计算方法。但如果此计算方法增加到2种以上,就需要考虑使用策略模式来管理计算方法
参考书籍
重构_改善既有代码的设计.pdf