何谓重构

重构(名词): 对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本.

重构(动词):使用一系列重构手法,在不改变软件可观察行为的前提下,调整期结构

性能优化与重构的对比:性能优化(时间,空间)往往使代码较难理解

重构与添加新功能交叉工作.

重构改进软件设计

如果没有重构,程序的设计会逐渐腐败变质.

重构使软件更容易理解

面向未来的开发者

早期重构:'擦掉窗户上的污垢,使你看得更远'

重构提高编程速度

良好的设计是维持软件开发速度的根本

2.3何时重构

三次法则

事不过三,三则重构

添加功能时重构

修补错误时重构

复审代码时重构

难以修改的程序

  1. 难以阅读的程序
  2. 逻辑重复的程序
  3. 添加新行为时需要修改已有代码的程序
  4. 带复杂条件逻辑的程序

我们期望的程序

  1. 容易阅读
  2. 所有逻辑都在唯一地点指定
  3. 新的改动不会危及现有行为
  4. 尽可能简单表达条件逻辑

2.4 怎么对经理说

大量研究显示: 技术复审是减少错误.提高开发速度的一条重要途径.

中间层价值

  1. 允许逻辑共享
  2. 分开解释意图和实现
  3. 隔离变化
  4. 封装逻辑条件

2.5 重构的难题

有限的重构经验

数据库

数据库的迁移,非对象数据库中,对象模型和数据模型之间分层来隔离两个模型各自的变化.多数据库和复杂模型下这个分隔层很重要

修改接口

如果接口被修改了,任何事情都有可能发生
published interface 比 public interface 更进一步

不要过早发布接口.请修改你的代码所有权政策,使重构更顺畅

何时不该重构

不如重写的时候

2.6 重构与设计

直观按照最初想法编码,有效运作,然后再将它重构成型.真的可行
极限编程的支持者极力提倡这种办法.

2.7 重构与性能

编写快速软件方法:

  1. 时间预算,执行轨迹
  2. 持续关注法
  3. 监控运行,找出消耗时间空间的点展开优化(发现热点,去除热点)

重构起源何处

重构对灵活高效框架的开发帮助

性能检测工具