0、重构的定义
重构(Refactoring):对软件内部结构的一种调整,目的是在不改变软件之可观察行为前提下,提高其可理解性,降低其修改成本。
1、为什么要做代码重构?
因为代码腐化。
1.1 代码腐化的具体表现
- 结构混乱。例如:代码位置错误(业务层代码写到控制层)、方法圈复杂度太高、单个方法行数过大、结构不统一。
- 代码没有复用。相同或类似的代码重复编写,没有抽象出共通的逻辑,霰弹式修改。
- 耦合性高。模块间强依赖,没有中间层。
- 安全隐患。例如:内存泄漏、数组越界、空指针、非法访问、内部数据暴露。
- 性能问题。递归层次太深、非必要的循环。
1.2 代码腐化的影响
- 开发效率降低。代码可读性差,难以理解。牵一发而动全身,不敢修改。无法针对修改做精准测试。
- 故障率上升。增加次生风险、难以快速定位问题。
- 无法支撑新需求。扩展性差,新功能难以融入系统。
1.3 代码腐化的原因
- 没有严格执行统一的代码规范。
- 应付紧急需求。没有考虑长远影响。
- 破窗效应。保持与旧代码一致,但旧代码已经很烂。
- 缺少严格的code review。
2、如何做代码重构?
2.1 重构的价值观
保持代码洁癖,具有匠人精神。专业、极致、创新。
2.2 重构的原则
- 单一职责原则
- 开闭原则
- 里氏替换原则
- 接口隔离原则
- 依赖反转原则
- 迪米特法则
2.3 重构的步骤
- 严格遵守统一的代码规范。
- 使用代码检测工具P3C和SonarLint扫描代码。
- 定期的Code Review。