銀行祖傳系統重構實例:創立12年,只支持Python 2,跑着500多個應用程序

提到遺留系統,你會想到什麼?

  • 還在使用Java 5的路過
  • JDK 1.6的我不說啥了
  • 很多坑
  • 難維護
  • 從零開始(重寫)
  • 盼着IE什麼時候不再能使用

遺留系統

對於遺留系統,程序員們並不陌生。據維基百科介紹,遺留系統是一種舊的方法、舊的技術、舊的計算機系統或應用程序。

張逸認爲,遺留系統首先是一個還在運行和使用,但已步入軟件生命週期衰老期的軟件系統。它符合所謂的“奶牛規則”:奶牛逐漸衰老,最終無奶可擠,然而與此同時,飼養成本卻在上升。這意味着遺留系統會逐漸隨着時間的推移,維護成本會不斷地增加。

在《從300萬行到50萬行代碼,遺留系統的微服務改造》一文中,技術瑣話闡述了遺留系統的一些共同特徵。

  • 龐大的單體應用:遺留系統大多是多年積累下來的“巨無霸”系統,以單體應用形式呈現。
  • 難於修改:多年的代碼累積過程中疏於重構,導致代碼的可讀性和可擴展性較差。
  • 維護成本很高:在龐大的代碼中尋找 bug 的根本原因可能會比較困難。此外,運維也是難題,比如在本章開頭提到的 Perl 系統,沒有 APM 工具支持它的監控。
  • 學習成本高昂:由於設計陳舊或技術過時,可能瞭解遺留系統技術和業務的人已經很難找到。
  • 缺乏質量保障:由於過去缺少投入,許多功能基本上沒有自動化測試來保障質量。

原文鏈接:【https://www.infoq.cn/article/ULZyRNAiJYO5e56rYJsQ】。未經作者許可,禁止轉載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章