技術負債比喻由漫無計畫的軟體架構,或者匆忙的軟體開發引起的後果。又稱為設計負債。
基本介紹
- 中文名:技術負債
- 外文名:Technical debt
- 又稱:設計負債
- 領域:計算機
簡介,軟體工程,代碼重構,
簡介
技術負債(英語:Technical debt),又譯技術債,也稱為設計負債(design debt)、代碼負債(code debt),是編程及軟體工程中的一個比喻。指開發人員為了加速軟體開發,在應該採用最佳方案時進行了妥協,改用了短期內能加速軟體開發的方案,從而在未來給自己帶來的額外開發負擔。這種技術上的選擇,就像一筆債務一樣,雖然眼前看起來可以得到好處,但必須在未來償還。軟體工程師必須付出額外的時間和精力持續修復之前的妥協所造成的問題及副作用,或是進行重構,把架構改善為最佳實現方式。
1992年,沃德·坎寧安首次將技術的複雜比作為負債。第一次發布代碼,就好比借了一筆錢。只要通過不斷重寫來償還債務,小額負債便可以加速開發。但久未償還債務會引發危險。復用馬馬虎虎的代碼,類似於負債的利息。整個部門有可能因為鬆散的實現,不完全的面向對象的設計或其他諸如此類的負債而陷入窘境。
軟體工程
1968年秋季,NATO(北約)的科技委員會召集了近50名一流的編程人員、計算機科學家和工業界巨頭,討論和制定擺脫“軟體危機”的對策。在那次會議上第一次提出了軟體工程(software engineering)這個概念,研究和套用如何以系統性的、規範化的、可定量的過程化方法去開發和維護軟體,以及如何把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來的學科。它涉及到程式設計語言、資料庫、軟體開發工具、系統平台、標準、設計模式等方面。其後的幾十年里,各種有關軟體工程的技術、思想、方法和概念不斷被提出,軟體工程逐步發展為一門獨立的科學。
1993年,電氣電子工程師學會(IEEE)給出了一個更加綜合的定義:"將系統化的、規範的、可度量的方法用於軟體的開發、運行和維護的過程,即將工程化套用於軟體開發中"。此後,IEEE多次給出軟體工程的定義。
在現代社會中,軟體套用於多個方面。典型的軟體比如有電子郵件、嵌入式系統、人機界面、辦公包、作業系統、編譯器、資料庫、遊戲等。同時,各個行業幾乎都有計算機軟體的套用,比如工業、農業、銀行、航空、政府部門等。這些套用促進了經濟和社會的發展,提高人們的工作效率,同時提升了生活質量。