重构改善既有代码的设计(第二版)

重构的定义

  • 名词定义: 对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本.
  • 动词定义: 使用一系列重构手法可观察行为的前提下,调整其结构.
  • 重构过程的精髓: 小步修改,每次修改后进行运行测试.
  • 重构和添加新功能
    • 添加新功能是,我不应该修改既有代码,只管添加新功能.通过添加测试并让测试正常运行,我可以衡量自己的工作进度.
    • 重构时我就不能再添加功能,只管调整代码的结构.此时我不应该添加任何测试(除非发现有先前遗漏的东西),只在绝对必要(用以处理接口变化)时才修改测试.
  • 何时重构

    Don Roberts给了我一条准则: 第一次做某件事时尽管去做;第二次做类似的事会产生反感,但无论如何还是要去做;第三次再做类似的事,你就应该重构.
    事不过三,三则重构.