債務(wù)這個詞,相信大家已經(jīng)都對其深有體會了,特別是像我一樣作為“房奴”的人,每個月都要去銀行還錢,那就是債務(wù)啊。
在軟件開發(fā)的過程中,我們往往也會借債,人們稱之為技術(shù)債務(wù),其實也就是為了快速地解決問題,而采取的不規(guī)范的方案。比方說把某個條件寫死,再比方說采用一些捷徑達到目的,而這只是特殊情況,無法應(yīng)用在其他模塊中。
對于房貸,大家肯定每個月都會記著去還,但是對于技術(shù)債務(wù),大家似乎就不那么關(guān)心了,的確這個東西不一定是誰借誰還,可能一個人的代碼中產(chǎn)生了技術(shù)債務(wù),然后由于負擔太重,閃人了,那沒有辦法,這筆債務(wù)就會壓在后來工作接替者身上,古語說:父債子償,不知道這應(yīng)該叫什么。
然而,技術(shù)債務(wù)其實最終的承擔者還是系統(tǒng)的所有者,或者說系統(tǒng)的開發(fā)商。而且,技術(shù)債務(wù)有一個致命的特點,與我們的房貸不同,而與一種很可怕的借款——我們稱之為高利貸——相同,那就是會利滾利。試想一下,如果我們在一個類中欠下了技術(shù)債務(wù),然后之后的程序又對這個類進行了擴展和修改,再后的程序?qū)U展后的程序又做出了更大的擴展,或者說后來的程序在一些功能的寫法上參照了欠下債務(wù)的類,那么這個債務(wù)就會產(chǎn)生非常大的利息,甚至于超過了債務(wù)本身。用不了太多時間,我們就會發(fā)現(xiàn),已經(jīng)無力償還這份技術(shù)債務(wù)了。
上面所提到的還只是在功能上的技術(shù)債務(wù),我覺得技術(shù)債務(wù)遍布于我們的系統(tǒng)開發(fā)過程之中。比方說:
在代碼規(guī)范上也存在技術(shù)債務(wù),如果一個程序員為了快速開發(fā)或者修改一個功能,在開發(fā)的時候沒有遵守代碼規(guī)范,那么此時就會欠下代碼規(guī)范方面的債務(wù)。如果不盡快償還的話,那么之后的基于該程序的修改,也會有很大的可能不遵守代碼規(guī)范,這也正是破窗子理論的體現(xiàn)。這樣下去,程序的可維護性就會大大降低,直至不可維護。
在文檔上也存在技術(shù)債務(wù)?,F(xiàn)在很多的開發(fā)團隊中還是存在技術(shù)文檔的,像詳細設(shè)計什么的。如果一次開發(fā)中,由于時間緊,只修改了代碼,而沒有修改相關(guān)的文檔,那么必定就會造成文檔和實際代碼功能上的不一致。這樣做的后果就是,在一段時間之后,我們會發(fā)現(xiàn)文檔根本就不足以作為參考,因為有些時候不僅不會幫助我們,而且還會造成誤導(dǎo),從而大家對文檔都失去了信心。
從上面的種種我們可以看出,欠下技術(shù)債務(wù),而疏于修改,后果會非常嚴重,那么我們應(yīng)該怎么做呢?其實道理很簡單,首先是盡量不要欠下技術(shù)債務(wù),其次就是一旦迫不得已欠下了債務(wù),就應(yīng)該以最快的速度償還。我們在銀行借的房貸,5年還和20年還,利息會相差很多,對于技術(shù)債務(wù),也是同樣,如果盡快償還,那么不會付出太大的代價,而且是在我們的能力承受范圍之內(nèi)的,但是如果拖的時間太長,債務(wù)就會變得越來越多,直至我們無力償還。
所以,作為程序員,除了關(guān)心自己生活中的債務(wù)之外,也請對技術(shù)債務(wù)提高警惕!
-
工程師
+關(guān)注
關(guān)注
59文章
1590瀏覽量
69507 -
程序員
+關(guān)注
關(guān)注
4文章
954瀏覽量
30420
發(fā)布評論請先 登錄
知識分享 | 敏捷方法在基于模型的軟件開發(fā)項目中的應(yīng)用

基于瑞薩64位MPU RZ/G2L進行32位應(yīng)用軟件開發(fā)


硬件工程師看了只會找個角落默默哭泣#硬件工程師 #MDD #MDD辰達半導(dǎo)體 #產(chǎn)品經(jīng)理 #軟件工程師
【華秋DFM】V4.6正式上線:工程師的PCB設(shè)計“好搭子”來了!
如何成為一名合格的KaihongOS北向應(yīng)用開發(fā)工程師

嵌入式軟件工程師就業(yè)好不好?
如何成為一名合格的北向應(yīng)用開發(fā)工程師

不同時期的硬件工程師,最怕發(fā)生的事 #電子工程師 #硬件工程師 #內(nèi)容過于真實 #YXC晶振 #揚興科技
嵌入式工程師常用的開發(fā)工具有哪些?
ECU電控軟件開發(fā)及測試介紹

9月12日云技術(shù)研討會 | ECU電控軟件開發(fā)及測試全流程解決方案


評論