12.重构-总结

1. 问题

前面的篇幅只是一个介绍,一个起点,如果没有这些技术,就无法对程序进行改动。有了这些技术,你仍然做不到,但起码可以开始尝试。

  • 何时应该使用、何时不应该使用;
  • 何时开始、何时停止;
  • 何时前进、何时等待;

2. 得道

可以自信地停止重构。

3. 学习

  • 随时挑选一个目标;
  • 没把握就停下来;
  • 学习原路返回;
  • 二重奏(多人协作重构、结对编程);

4. 要点

  • 若代码无法方便添加新特性,请先重构;
  • 重构技术就是以微小的步伐修改程序;
  • 傻瓜都能编写计算机可以理解的代码,而唯有能编写人类容易理解的代码才是优秀的程序员;
  • 重构(名词):对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本;
  • 重构(动词):使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构;
  • 事不过三,三则重构;
  • 不要过早发布接口(API),修改代码所有权政策,使得重构更顺畅;
  • 过多注释情况,请先重构;
  • 大家都认为会出错的地方,检测是否抛出了预期的异常;
  • 测试、测试、测试!!!
    • 重构前,先检查是否有一套可靠的测试机制,且具备自我检验能力;
    • 自动化测试;
    • 频繁运行测试;
    • 单元测试;
    • 考虑可能的出错边界条件,多测试;

5. 结语

  • 大规模的重构只会带来灾难;
  • 沟通:团队朝着同一个方向一起努力;
  • 永远不要忘记“两顶帽子”:保持代码的功能完全不变,既不多又不少。对于需要修改的问题,先记下来。重构结束无误后,再进行修改。
  • 千万别打乱工作。

参考

  • 《重构-改善既有代码的设计》(第15章)
坚持原创技术分享,您的支持将鼓励我继续创作!