創(chuàng)意歌曲:我是一段死代碼
死代碼就是沒用的、但卻留在程序庫中的代碼。這樣的代碼沒有任何其它程序會調(diào)用它,沒有任何函數(shù)、對象引用它。它就在程序中,但程序的運(yùn)行狀態(tài)跟它一點(diǎn)關(guān)系都沒有。
為什么程序中會有死代碼?有可能是程序庫升級,老的接口不再使用。有可能是需求調(diào)整,但跟過時的需求相關(guān)的代碼沒有被刪除。有可能是拷貝粘貼的過程中,有些沒有用的函數(shù)也粘貼了過來。有可能是重構(gòu)的過程中,把老代碼保留下來備份用。等等…..
死代碼是應(yīng)該刪除的代碼。沒有用的代碼也就是沒有人維護(hù)的代碼。***將變成沒有人知道它是有什么用處的代碼。后來的人也開始不敢刪除這樣的代碼,怕萬一什么地方需要用到它。于是這樣的死代碼積累的越來越多。技術(shù)債務(wù)越來越重。健康的項目慢慢腐爛變質(zhì)。最終沒有人能維護(hù)。
死代碼應(yīng)該及時大膽清除。很多程序員會擔(dān)心,萬一這段代碼還有用呢?沒錯。因為你不熟悉這些代碼,很多人修改過這些代碼,沒準(zhǔn)什么地方還在用這段代碼。但是,我們有代碼保護(hù)工具:代碼版本控制系統(tǒng)——git,svn等。即使是誤刪了代碼,也能從歷史記錄里恢復(fù)。
最重要的,我們還有自動化測試。自動化測試是保證程序正確的最可靠的保證。無論做什么修改,添加功能,刪除功能,最終都要運(yùn)行自動化測試,讓所有的測試點(diǎn)都綠燈通過。如果你還在擔(dān)心害怕刪除死代碼,很可能是因為你的項目沒有自動化測試。
死代碼,如果你不刪,它會很痛苦,因為無人問津它,無人調(diào)用它。它如同活死人,僵尸。下面這段視頻就是一位網(wǎng)友很形象的唱出了死代碼們的心聲: