, 那么先重构那个程序然后再添加特性
1.2 重构的第一步
重构的第一步是为代码建立一组可靠的测试环境
测试需要自动对各种样例进行检验并给出结果, 结果需要自动化指出错误行号等信息减少人工比对
好的测试是重构的根本...依赖统计和性能度量大大优化来重构的效果
3 代码的坏味道
3.1 重复代码
如果项目内多个地方看到了相同的代码, 那就想办法将其合为一
3.2 过长函数
多对大函数进行分解, 每当需要长注释的时候就应该将所需的分段进行包装了...改为在if-else中调用子函数提高代码可读性, 让代码就像注释一样清楚
9.2 合并条件表达式
如果多个if检测条件不同但结果相同, 则用一个命名合适的函数将这多个if合在一起简化..../取值函数组成.
10.5 令函数携带参数
多个命名不同但是内部行为类似的函数, 应该用参数取代混乱的命名.
10.6 以明确的函数取代参数
10.5的反面, 主要是当参数可选范围很小时, 提高语义的清晰度使用...大型重构不必要一次性完成, 可以将其摊分在很长时间里, 一点一滴取得进步.
12.1 梳理并分解继承体系
让每个继承体系只承担一种责任, 最常见的就是让数据显示和数据处理两个部分分离, 让同一套显示代码以参数或委托的形式接受各种不同的数据