02 重构原则

重构原则(P78-99)

为何重构

  1. 使代码更容易理解和修改
  2. 优化性能,便于维护

利用重构技术开发时,应该把时间分配给两种截然不同的行为,添加新功能,以及重构。

何时重构

三次法则:第一次只管去做。第二次会反感,但是可以这样做。第三次应该重构。

时机:

  1. 为了理解代码
  2. 为了弥补过去的不足,添加新特性
  3. 使用重构复审代码

重构是为了明天的工作更加轻松。

修改接口:修改已经发布的接口需要谨慎修改,尽量采用在旧接口中调用新接口的方式来实现。

重构的前提是代码的大部分功能都健全,并且不建议在最后关头做重构。

重构与设计

“预先设计”有必要,但是需要臆想到方方面面,难度大而且实施起来就不一定如意,因此可以使用重构来取代预先设计,只管按照最初的想法开始编码,让代码有效运作,然后再将它重构成型。这里并不是说预先设计就没有必要,最好还是有一个初步的设计,结合起来使用。

重构与性能

三种编写快速软件的方式:

  1. 时间预算法:分解设计时对每一个组件分配定量的资源——包括时间和执行的轨迹,每个组件绝对不能超过自己的预算时间,这种方法高度重视性能,运用在少部分系统中。
  2. 持续关注法:要求在任何时间做任何事都要保持系统的高性能,但是为了实现这种方法,开发的速度必然大大的降低,每一次都要思考最好的方式,性能改善分散在每一个角落,每一次修改都只是从程序的一个狭隘的角度出发。
  3. 大半的时间都消耗在一小部分的代码上,90%的优化工作都是白费劲。第三种方式就是先,编写良好的程序,不对性能做过多的关注,进入代码优化阶段时再对10%的“热点”部分做思考。

重构虽然可能使程序运行的教慢,但是它能使得我们比较快的开发出容易理解,容易添加新功能,细粒度更小的良好代码,在性能优化阶段可以针对“热点”进行优化,使得性能调整更容易:

本文标题:02 重构原则

文章作者:Sun

发布时间:2019年01月07日 - 12:01

最后更新:2019年01月15日 - 20:01

原始链接:https://sunyi720.github.io/2019/01/07/refactoring/02 重构原则/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。