重构(Refactoring)就是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。另有同名图书。
重构的好处
能改进软件设计使软件更容易被理解
能帮你找到bug
提高软件的开发速度
什么时候进行重构
三次法则:事不过三,三则重构.意思是说,一件事情,第一次只管去做,第二次做类似的事情会产生反感,但无论如何还是做了,第三次再做类似的事情,你就应该重构.
在添加新功能时进行重构.
在修改bug时进行重构
在代码复审时进行重构.
为什么重构有用
难以修改的程序具有以下特征:
难以阅读的程序,难以修改
逻辑重复的程序,难以修改
添加新行为时需要修改现有的代码,难以修改
带复杂条件逻辑的程序,难以修改
好的程序应该是:
容易阅读
所有逻辑都只在唯一地点指定
新的改动不会危及现有的行为
尽可能简单的表达条件逻辑
间接层和重构
间接层的存在的价值:允许逻辑共享;分开解释意图和实现;将变化加以隔离;将条件逻辑加以编码
但是过多的间接层会导致代码的层次太深,使代码难以阅读.因些要权衡加入间接层的利弊.
重构与性能
提高性能的三种方法:
时间预算法——在设计时就对程序花费的时间进行预算,通常用于性能要求极高的实时系统.普通的企业
应用程序
一般对性能要求不高.只要不太慢就可以了.
持续关注法——要求程序员在任何时间都要设法保持系统的高性能.这个方法有个缺陷,就是大部分的程序90%的优化工作都是白费劲,这样会浪费大量的时间.
良好的分解方式——这个方式是在开发程序阶段不对性能投以任何关注,直到进入性能优化阶段,再分析程序中性能差的程序,然后对这些程序进分解,查出性能差的程序,进行优化.