架构设计不是永恒不变的。架构设计也是具有生命周期的,也会经历初生、发展、巅峰、衰弱、消亡的过程。
一、什么是重构
重构是对软件内部结构的一种调整,其目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。实施重构工作有个重要理念,即运用大量微小且保持软件行为的步骤,一步步达成大规模的修改。
二、为什么重构
早期系统通常具备以下特征:
- 开发速度快(无技术债务)
- 代码复杂度低(功能少复杂度低)
- 代码规范都保持完好
- 严格注重开发规范,不会允许危及架构设计的代码产生
- 以上因素导致添加功能难度低,成本低
晚期系统特征如下:
- 具备所有早期系统的劣势
- 代码复杂度高(功能累加导致复杂度变高)
- 代码规范不完善(针对一些特殊情况,代码规范并不能支持新功能开发,因而针对代码规范会出现一些越界情况,久而久之随着越界情况越来越多,整体代码规范并不能像早期代码规范那么完善)
- 很多需求或功能出现逾越架构设计的情况(这种情况不可避免,总有一些情况是我们在设计架构时未考虑到,之后采用打补丁的方式实现新功能)
- 添加新功能兼顾较多,涉及较多模块,牵一发而动全身
当发现一个现有架构体系已经不能满足当前迭代速度的时候就需要进行重构工作。
三、微重构
对有坏味道的代码通过一些重构手段进行微重构(即小规模重构),重构流程如下:
其中需求过程中的冲突问题指的是当整个项目在重构时整体的业务逻辑还在旧功能逻辑上开发,这时就需对需求的情况做一个罗列或者总结,待完成重构工作后将所有的功能补充过来。