跳转至

重构

重构的目的:为什么要重构(why)

Martin Fowler: 重构是一种对软件内部结构的改善,目的是在不改变软件的可见行为的情况下,使其更易于理解,修改成本更低 - 重构:在保持功能不变的前提下,利用设计思想、原则、模式、编程规范等理论来优化代码,修改设计上的不足,提高代码质量 - 重构不改变外部的可见行为 - 重构是时刻保证代码质量的一个极其有效的手段 - 重构是避免过度设计的有效手段 - 重构能力也是衡量一个工程师代码能力的有效手段 初级工程师在维护代码,高级工程师在设计代码,资深工程师在重构代码

重构的对象:到底重构什么(what)

  • 根据重构的规模:
    • 大规模高层次重构
      • 对顶层代码设计的重构:
        • 包括:系统、模块、代码结构、类与类之间的关系
      • 重构的手段:分层、模块化、解耦、抽象可复用组件
      • 重构的工具:设计思想、原则和模式
      • 这类重构设计的代码改动比较多,影响面比较大,难度比较大,耗时较长,引入bug风险大
    • 小规模低层次重构
      • 主要针对类、函数、变量等代码级别的重构
        • 规范命名、规范注释、消除超大类或函数、提取重复代码等
      • 重构的工具:编码规范
      • 修改集中,比较简单,可操作性强,耗时短

重构的时机:什么时候重构(when)

  • 可持续重构

重构的方法:如何重构(how)

  • 在进行大型重构的时候,我们要提前做好完善的重构计划
  • 每个阶段完成一小部分代码的重构,然后提交、测试、运行
  • 保证代码仓库中的代码一直处于可运行、逻辑正确的状态
  • 每个阶段,我们都要控制好重构影响到的代码范围,考虑好如何兼容老的代码逻辑,必要的时候还需要写一些兼容过渡代码