債務這個詞,相信大家已經都對其深有體會了,特別是像我一樣作為「房奴」的人,每個月都要去銀行還錢,那就是債務啊。
在軟體開發的過 程中,我們往往也會借債,人們稱之為技術債務,其實也就是為了快速地解決問題,而採取的不規範的方案。比方說把某個條件寫死,再比方說採用一些捷徑達到目 的,而這只是特殊情況,無法應用在其他模組中。
對於房貸,大家肯定每個月都會記著去還,但是對於技術債務,大家似乎就不那麼關心了,的確這 個東西不一定是誰借誰還,可能乙個人的**中產生了技術債務,然後由於負擔太重,閃人了,那沒有辦法,這筆債務就會壓在後來工作接替者身上,古語說:父債 子償,不知道這應該叫什麼。
然而,技術債務其實最終的承擔者還是系統的所有者,或者說系統的開發商。而且,技術債務有乙個致命的特點,與我 們的房貸不同,而與一種很可怕的借款——我們稱之為高利貸——相同,那就是會利滾利。試想一下,如果我們在乙個類中欠下了技術債務,然後之後的程式又對這 個類進行了擴充套件和修改,再後的程式對擴充套件後的程式又做出了更大的擴充套件,或者說後來的程式在一些功能的寫法上參照了欠下債務的類,那麼這個債務就會產生非常 大的利息,甚至於超過了債務本身。用不了太多時間,我們就會發現,已經無力償還這份技術債務了。
上面所提到的還只是在功能上的技術債務,我 覺得技術債務遍布於我們的系統開發過程之中。比方說:
在**規範上也存在技術債務,如果乙個程式設計師為了快速開發或者修改乙個功能,在開發的 時候沒有遵守**規範,那麼此時就會欠下**規範方面的債務。如果不盡快償還的話,那麼之後的基於該程式的修改,也會有很大的可能不遵守**規範,這也正 是破窗子理論的體現。這樣下去,程式的可維護性就會大大降低,直至不可維護。
在文件上也存在技術債務。現在很多的開發團隊中還是存在技術文 檔的,像詳細設計什麼的。如果一次開發中,由於時間緊,只修改了**,而沒有修改相關的文件,那麼必定就會造成文件和實際**功能上的不一致。這樣做的後 果就是,在一段時間之後,我們會發現文件根本就不足以作為參考,因為有些時候不僅不會幫助我們,而且還會造成誤導,從而大家對文件都失去了信心。
從 上面的種種我們可以看出,欠下技術債務,而疏於修改,後果會非常嚴重,那麼我們應該怎麼做呢?其實道理很簡單,首先是盡量不要欠下技術債務,其次就是一旦 迫不得已欠下了債務,就應該以最快的速度償還。我們在銀行借的房貸,5年還和20年還,利息會相差很多,對於技術債務,也是同樣,如果盡快償還,那麼不會 付出太大的代價,而且是在我們的能力承受範圍之內的,但是如果拖的時間太長,債務就會變得越來越多,直至我們無力償還。
所以,作為程式設計師, 除了關心自己生活中的債務之外,也請對技術債務提高警惕!
程式設計師應知 技術債務
債務這個詞,相信大家已經都對其深有體會了,特別是像我一樣作為 房奴 的人,每個月都要去銀行還錢,那就是債務啊。在軟體開發的過程中,我們往往也會借債,人們稱之為技術債務,其實也就是為了快速地解決問題,而採取的不規範的方案。比方說把某個條件寫死,再比方說採用一些捷徑達到目的,而這只是特殊情況,無法應用在...
程式設計師應知 技術債務
債務這個詞,相信大家已經都對其深有體會了,特別是像我一樣作為 房奴 的人,每個月都要去銀行還錢,那就是債務啊。在軟體開發的過程中,我們往往也會借債,人們稱之為技術債務,其實也就是為了快速地解決問題,而採取 的不規範的方案。比方說把某個條件寫死,再比方說採用一些捷徑達到目的,而這只是特殊情況,無法應用...
程式設計師應知 技術債務
債務這個詞,相信大家已經都對其深有體會了,特別是像我一樣作為 房奴 的人,每個月都要去銀行還錢,那就是債務啊。在軟體開發的過程中,我們往往也會借債,人們稱之為技術債務,其實也就是為了快速地解決問題,而採取的不規範的方案。比方說把某個條件寫死,再比方說採用一些捷徑達到目的,而這只是特殊情況,無法應用在...