在VORtech作為科學軟體工程師的實踐中,我們為那些將計算軟體作為其智力資本重要組成部分的組織工作。如果成功的話,這樣的計算軟體包可以存在很多年甚至幾十年。隨著時間的推移,它不斷發展。但同時,程式碼庫不斷成長並且變得越來越難以管理。維護和擴展這些遺留程式碼所需的工作變得越來越廣泛。這種情況甚至可能會上升到這樣的程度:儘管投資巨大,但從頭開始更換似乎是唯一的出路。
遺留程式碼
這是我們討論如何處理遺留程式碼的一系列部落格的第二部分。如何使其保持在可管理的狀態,以及如何在必要時恢復它。在第一篇部落格中,我們給出了對遺留軟體的願景,包括對價值的尊重、對歷史和現在的理解以及對老化軟體缺點的清晰願景。在這篇部落格中,我們將討論遺留程式碼的特徵及其原因。
我們遇到什麼?
遺留程式碼的各個方面都會降低程式碼品質並降低程式碼可讀性。這使得持續的維護和開發變得越來越困難。我們經常看 就業資料庫 到以下幾個方面的發生:
糾纏功能:過程執行在整個程式碼中交織在一起的多個任務。
全域變數作用域和狀態:任何變數都可以在程式碼中的任何位置進行修改,且變數的狀態可以影響每個操作。
瑞士軍刀:該應用程式被用作
多用途工具,因為它被用於多種使用模式或工作流程。其中一些使用模式可能不再相關,但它們仍然存在於整個程式碼中。程式流程由整個程式碼中的全域控制開關控制。或者,不同的位置向開發人員提供了令人生畏的複雜條件分支列表,用於區分不同的工作流程。
測試設施不足
各種程序狀態和使用模式的測試覆蓋範圍有限,和/或測試方法不充分。
低品質的技術文檔,沒有明確解釋程式碼中演算法的背景和底層設計選擇。
用於管理程式碼
編譯、建置和部署、版本控制和問題追蹤的自製或過時工具。建置需要隱藏環境條件或複雜手動流程的環境。
3.軟體老化的原因
遺留程式碼的典型缺點是由老化過程中常見的兩個因素引起的:演化和衰退:
原則上
軟體包的演進是可取的,因為它擴展了程式碼的有用性並使其與當前的挑戰保持相關。然而,雖然該軟體不斷發展和成熟,但它的部署方式卻 群組聯絡人資料庫:強大的協作工具 是其原始設計中未預見到的。該軟體的發展超出了其原來的應用範圍。這可能會導致最初的假設和約束與當今的要求不符。針對原始情況所設想的軟體結構可能不適合合併新情況。進化的例子有:
複雜性的成長:新演算法、維度和問題規模的增加、用例越來越多。
該應用程式不僅用作設計支援工具
而且還可以作為數位孿生在操作環境中使用。
不斷變化的使用者和開發人員基礎,包括其他角色、新一代,以外部各方為特色。
在其他平台
例如 Linux/Windows)、基於 Web/雲端的設定、嵌入式系統上使用該應用程式。
從獨立應用程式轉向多客戶端服務。
發佈留言