9.3 维护与演化
软件上线后并没有结束。真实软件的大部分生命都在维护中度过:修 bug、适应新环境、改善体验、降低未来风险。
维护不是低级工作。它是让软件持续创造价值的工程能力。
正在加载交互实验...
正在加载概念检查...
四类维护
常见维护可以分成四类:
- 纠错性维护:修复已经发现的缺陷。
- 适应性维护:适配外部环境变化,例如浏览器、操作系统、法规、第三方 API。
- 完善性维护:改善性能、体验、可用性或功能细节。
- 预防性维护:降低未来故障概率,例如补测试、重构、升级依赖、清理风险。
分类的价值不是背概念,而是帮助团队安排不同类型工作的节奏。
遗留系统
遗留系统不等于烂系统。它可能承担关键业务,只是技术栈旧、测试少、知识分散、边界不清。
维护遗留系统时最危险的是在没有保护的情况下大改核心逻辑。更稳的方式是:
- 先观察真实行为。
- 补日志、指标和特征测试。
- 记录已知业务规则。
- 把变化包在小边界里。
- 用功能开关或并行运行降低迁移风险。
正在加载概念检查...
演化而不是重写冲动
重写很诱人,因为新代码看起来干净。但重写会丢失旧系统中隐藏的业务知识。很多失败重写不是因为技术不行,而是因为团队低估了旧系统承载的例外、数据和用户习惯。
演化式维护更关注:
- 小步替换。
- 行为对比。
- 可回滚。
- 数据兼容。
- 用户影响最小化。
维护的目标不是让系统永远年轻,而是让系统在变化中仍然可靠、可理解、可继续演进。
正在加载本节练习...