1. 问题
前面的篇幅只是一个介绍,一个起点,如果没有这些技术,就无法对程序进行改动。有了这些技术,你仍然做不到,但起码可以开始尝试。
- 何时应该使用、何时不应该使用;
- 何时开始、何时停止;
- 何时前进、何时等待;
2. 得道
可以自信地停止重构。
3. 学习
- 随时挑选一个目标;
- 没把握就停下来;
- 学习原路返回;
- 二重奏(多人协作重构、结对编程);
4. 要点
- 若代码无法方便添加新特性,请先重构;
- 重构技术就是以微小的步伐修改程序;
- 傻瓜都能编写计算机可以理解的代码,而唯有能编写人类容易理解的代码才是优秀的程序员;
- 重构(名词):对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本;
- 重构(动词):使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构;
- 事不过三,三则重构;
- 不要过早发布接口(API),修改代码所有权政策,使得重构更顺畅;
- 过多注释情况,请先重构;
- 大家都认为会出错的地方,检测是否抛出了预期的异常;
- 测试、测试、测试!!!:
- 重构前,先检查是否有一套可靠的测试机制,且具备自我检验能力;
- 自动化测试;
- 频繁运行测试;
- 单元测试;
- 考虑可能的出错边界条件,多测试;
5. 结语
- 大规模的重构只会带来灾难;
- 沟通:团队朝着同一个方向一起努力;
- 永远不要忘记“两顶帽子”:保持代码的功能完全不变,既不多又不少。对于需要修改的问题,先记下来。重构结束无误后,再进行修改。
- 千万别打乱工作。
参考
- 《重构-改善既有代码的设计》(第15章)