首页/开发/代码质量与评审速查/重构:定义与适用边界
重构手法62 条

重构:定义与适用边界

重构是在不改变外部行为的前提下改善代码内部结构(Martin Fowler 定义);它服务于可理解性与可修改性,不是为清闲而改,也不等同于重写。

定义不改变外部行为、改善内部结构
前提有可运行的测试或可验证的行为基准
区别于重写(改变结构与实现)与性能优化(改变资源占用)

重构与相关活动对比

活动外部行为内部结构主要目标
重构不变改变可维护性
重写可能改变重建新需求与旧债
性能优化通常不变部分改变速度与资源
修缺陷改变(修复)尽量不动正确性
重构的产出是结构更清晰的代码,不直接产生新功能;两者在同一提交里混做,评审会很难拆分。

易错点

  • 没有测试就开始大改:行为悄悄改变,问题数周后才暴露
  • 把重构与功能改动混在一个巨大提交中:出问题无法二分定位

数据来源与参考

  • 《重构:改善既有代码的设计》第 2 版(Martin Fowler)· 第 1 章
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌