提到遗留系统,你会想到什么?
- 还在使用Java 5的路过
- JDK 1.6的我不说啥了
- 很多坑
- 难维护
- 从零开始(重写)
- 盼着IE什么时候不再能使用
- …
遗留系统
对于遗留系统,程序员们并不陌生。据维基百科介绍,遗留系统是一种旧的方法、旧的技术、旧的计算机系统或应用程序。
张逸认为,遗留系统首先是一个还在运行和使用,但已步入软件生命周期衰老期的软件系统。它符合所谓的“奶牛规则”:奶牛逐渐衰老,最终无奶可挤,然而与此同时,饲养成本却在上升。这意味着遗留系统会逐渐随着时间的推移,维护成本会不断地增加。
在《从300万行到50万行代码,遗留系统的微服务改造》一文中,技术琐话阐述了遗留系统的一些共同特征。
- 庞大的单体应用:遗留系统大多是多年积累下来的“巨无霸”系统,以单体应用形式呈现。
- 难于修改:多年的代码累积过程中疏于重构,导致代码的可读性和可扩展性较差。
- 维护成本很高:在庞大的代码中寻找 bug 的根本原因可能会比较困难。此外,运维也是难题,比如在本章开头提到的 Perl 系统,没有 APM 工具支持它的监控。
- 学习成本高昂:由于设计陈旧或技术过时,可能了解遗留系统技术和业务的人已经很难找到。
- 缺乏质量保障:由于过去缺少投入,许多功能基本上没有自动化测试来保障质量。
原文链接:【https://www.infoq.cn/article/ULZyRNAiJYO5e56rYJsQ】。未经作者许可,禁止转载。