本部落格是系列文章的一部分,該系列文章也可作為白皮書提供。
在VORtech作為科學軟體工程師的實踐中,我們為那些將計算軟體作為其智力資本重要組成部分的組織工作。為了讓軟體達到目前的成熟狀態,我們投入了無數的工時。組織應用領域專家的智慧、專業知識和研究都被捕獲並透過它進行部署。因此,這種所謂的遺留代碼是組織活動的設計或營運階段不可或缺的工具,或是其產品組合的關鍵部分。
遺留程式碼
如果成功,計算軟體包可以存在很多年甚至幾十年。隨著時間的推移,它不斷發展。新功能和應用程 中文新加坡電話號碼表 式正在添加,預測結果正在驗證和改進,問題正在解決。使用軟體的經驗不斷增長,對其可用性和可靠性的信任也不斷增長。該軟體包的壽命很容易超過其運行的硬體的壽命。而且通常它的壽命比組織內的開發人員和使用者還要長。因此,該包成為具有巨大價值的遺產寶藏。
但同時程式碼庫不斷成長並且變得越
來越難以管理。維護和擴展軟體所需的工作量變得越來越大。這種情況甚至可能會上升到這樣的程度:儘管投資巨大,但從頭開始更換似乎是唯一的出路。
在本系列部落格中
我們將討論如何處理遺留程式碼。如何使其保持在可管理的狀態,以及如何在必要時恢復它。它基於我們超過 25 年對遺留程式碼的日常實踐,以及我們發現有用的軟體科學的新見解和發展。
我們對遺留程式碼的看法
我們對遺留程式碼的看法有以下三個面向的特點
尊重價值。知識價值、投入的精力和成本、設計和操作的實用價值、多年來模型預測的經過驗證的有效性、使用者體 微處理器電路級優化 驗和信任:它們共同構成了遺留程式碼的寶藏。
了解歷史和現在。
對過去和現在的範式
語言和計算平台感到熟悉是至關重要的。這是了解遺留程式碼是如何形成的以及清楚地了解它現在(和應該)去往何處所必需的。舉幾個新舊的例子:
範式:從過程式編程到物件導向和函數式程式設計。每種範例都有其優點和缺點,並且可以「借用」各種概念來改進程式碼。
語言:從Fortran、C、Delphi和Perl到C++、Java、Haskell和Python。我們認為,「舊」語言並不一定意味著它已經過時。然而,對於接受過更新語言和現代軟體科學概念培訓的新一代開發人員來說,門檻更高。
了解「舊」和「新」為遺產現代化奠定了基礎
從單核心 CPU 到具有向量化和管線最佳化的多核心/眾核平台,包括GPU和其他加速器。
從需要經濟且明確的資料管理的有限數量的單級記憶體到分層快取記憶體。或者,採用具有垃圾收集功能的自動記憶體管理。