軟件侵蝕的雪球效應(yīng)
添加功能和快捷方式會逐步增加軟件復(fù)雜性,每次迭代都在無形中侵蝕著軟件架構(gòu)的完整性。
開發(fā)者在工作流中添加了快捷方式,導(dǎo)致代碼庫日益臃腫。想要一個新的功能?有可能會因此破壞一些東西。如果重新設(shè)計產(chǎn)品的某個方面,可能會引發(fā)一系列破壞性反應(yīng),影響到其他原本相互獨立的團(tuán)隊。每次改動都可能帶來意想不到的連鎖反應(yīng)。
開發(fā)者可能會因為額外的維護(hù)工作而感到沮喪,進(jìn)而再次添加一個快捷方式。如此反復(fù),直到代碼庫變得像極其不穩(wěn)定的真人版疊疊樂游戲。每個人都害怕成為那個讓整個結(jié)構(gòu)崩塌的人。這就是開發(fā)者在面對日益復(fù)雜的代碼庫時所面臨的挑戰(zhàn)。
關(guān)注軟件侵蝕是為了長期保障您的軟件投資
"這就是軟件侵蝕的本質(zhì),"Qt Group的Juan Rodriguez總結(jié)道,"無處不在的復(fù)雜性使得即使是發(fā)布最簡單的新功能也變得痛苦無比。從長期來看,這種情況會對效率和可擴(kuò)展性造成嚴(yán)重?fù)p害。"
我們是否忘了測試左移?
許多公司取了一種令人失望的"補救"措施。他們增加修復(fù)錯誤的時間,或者雇傭更多的QA工程師來減輕開發(fā)者負(fù)擔(dān)。然而,這些都只是在玩"打地鼠"游戲,新錯誤在被修復(fù)前并不存在,就像是用昂貴的創(chuàng)可貼來處理嚴(yán)重的傷口。
更明智的做法應(yīng)該是重新架構(gòu)代碼庫。對于只有兩年代碼歷史的公司來說,這可能相對容易,但對于那些擁有二十年遺留代碼的公司呢?即便他們完成了這項艱巨的任務(wù),如果第一次沒有真正吸取教訓(xùn),軟件侵蝕的循環(huán)就會再次開始。
從開發(fā)者在維護(hù)上投入的時間來看,這些教訓(xùn)似乎還沒有被充分吸取。軟件侵蝕的問題依然存在,我們甚至可以預(yù)見,AI代碼助手也面臨同樣的問題。除非每個行業(yè)都能自覺地從一開始就將QA緊密地融入到開發(fā)過程中。
在數(shù)字化時代背景下,軟件的穩(wěn)固性與安全性成為了企業(yè)信譽的重要防線
2024-09-03 13:47:15軟件正在我們眼前悄然被侵蝕