重构第二章:重构原则
2.1 何谓重构
对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。
使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。
添加新功能时,你不应该修改既有代码,只管添加新功能。重构时就不能再添加功能,只管改进程序结构。
2.2 为何重构
重构改进软件设计。完成同样一件事,设计不良的程序往往需要更多代码。因为常常代码在不同的地方使用完全相同的语句做同样的事。因此改进代码的一个重要方向就是消除重复代码。
重构使软件更容易理解。
重构帮助找到bug。
重构提高编程速度。
2.3 何时重构
三次法则。事不过三,三则重构。
修补错误时重构。
复审代码时重构。
我们希望程序:1)容易阅读; 2)所有逻辑都只在唯一地点指定; 3)新的改动不会危及现有行为; 4)尽可能简单表达条件逻辑
2.4
计算机科学是这样一门科学:它相信所有问题都可以通过增加一个间接层来解决。
1)允许逻辑共享。
2)分开解释意图和实现。
3)隔离变化。
4)封装条件逻辑。
2.5 重构的难题
数据库。
修改接口。
不要过早发布接口。请修改你的代码所有权政策,使重构更顺畅。
难以通过重构手法完成的设计改动。
何时不该重构:重写,或者项目已近最后期限。
2.6重构与设计
2.7 重构与性能
时间预算法
持续关注法
统计数据
2.8 重构起源何处
参考资料:
《重构-改善既有代码的设计》