目的

基本定义:不改变外部可见行为,也就是功能不变。

1 提升(保证)代码质量
2 系统逐渐复杂,为了适应后续的需求
3 避免过度设计
4 有利于工程师的成长

内容

大型重构:分层,模块化,解耦,抽象,可复用组件
小型重构:针对类,函数,变量等代码级别的,还包括代码格式等

时间

  • cr
  • 人员或者业务发生变动时
  • 技术更新时
  • 代码迭代成本变高,甚至不可迭代

如何重构

大规模的,分阶段去做,tl和架构师负责,不间断的就要重构代码,保证代码整体在一个可维护的状态,避免大家按照一种不好的方式堆砌不好的代码。

小的代码平时就通过cr进行优化。

注意事项

  • 团队内要有良好的技术氛围(tl决定的),重构是一种优良的习惯,做到平时的工作里去
  • 设计时,要设计出比需求更多的内容
  • tl和架构师要花一定的时间专职做这个
  • 领导要支持
  • cr是推进重构的重要窗口
  • 重构需要有测试用例,或者说测试团队支持