目的
基本定义:不改变外部可见行为,也就是功能不变。
1 提升(保证)代码质量
2 系统逐渐复杂,为了适应后续的需求
3 避免过度设计
4 有利于工程师的成长
内容
大型重构:分层,模块化,解耦,抽象,可复用组件
小型重构:针对类,函数,变量等代码级别的,还包括代码格式等
时间
- cr
- 人员或者业务发生变动时
- 技术更新时
- 代码迭代成本变高,甚至不可迭代
如何重构
大规模的,分阶段去做,tl和架构师负责,不间断的就要重构代码,保证代码整体在一个可维护的状态,避免大家按照一种不好的方式堆砌不好的代码。
小的代码平时就通过cr进行优化。
注意事项
- 团队内要有良好的技术氛围(tl决定的),重构是一种优良的习惯,做到平时的工作里去
- 设计时,要设计出比需求更多的内容
- tl和架构师要花一定的时间专职做这个
- 领导要支持
- cr是推进重构的重要窗口
- 重构需要有测试用例,或者说测试团队支持