在數(shù)字化時(shí)代,軟件的穩(wěn)定性與安全性構(gòu)筑企業(yè)值得信賴的護(hù)城河。作為全球領(lǐng)先的軟件開(kāi)發(fā)工具提供商,Qt Group正致力于通過(guò)其創(chuàng)新的Axivion Suite工具,助力企業(yè)在醫(yī)療器械、汽車等受高度監(jiān)管領(lǐng)域精準(zhǔn)識(shí)別或避免軟件侵蝕,確保軟件項(xiàng)目的長(zhǎng)期可維護(hù)性和可擴(kuò)展性。
上海2024年9月3日 /美通社/ -- 就像巖石和山脈會(huì)受到自然侵蝕,今天的全球軟件也在遭受侵蝕。每天,開(kāi)發(fā)者們都發(fā)現(xiàn)自己軟件的混亂程度越來(lái)越高,而這些軟件的架構(gòu)卻鮮少有人清楚理解。隨著AI產(chǎn)業(yè)發(fā)展駛?cè)搿翱燔嚨馈?,我們幾乎沒(méi)有時(shí)間去理清這些混亂。
近幾年,軟件頻繁出現(xiàn)問(wèn)題。僅2023年,國(guó)內(nèi)網(wǎng)購(gòu)、網(wǎng)約車、社交應(yīng)用等平臺(tái)或應(yīng)用多次發(fā)生崩潰,引發(fā)媒體報(bào)道,甚至登上不同平臺(tái)的熱搜榜。在全球范圍,Crowdstrike軟件更新導(dǎo)致的"微軟藍(lán)屏"事件可能是今年最引人注目的一個(gè)。
然而,開(kāi)發(fā)者們卻在維持這個(gè)搖搖欲墜的紙牌屋上投入了大量時(shí)間?;?,000多位美國(guó)、英國(guó)、法國(guó)、德國(guó)和新加坡開(kāi)發(fā)者和行政高管的調(diào)研報(bào)告《開(kāi)發(fā)者系數(shù)(The Developer Coefficient)》指出,開(kāi)發(fā)者每周平均工作41.1小時(shí),其中三分之一的時(shí)間用于解決技術(shù)債務(wù);超過(guò)40%的時(shí)間用于維護(hù)。
這實(shí)際上反映出大量時(shí)間被用于非創(chuàng)新性工作。Qt Group的QA業(yè)務(wù)總監(jiān)Juan Rodriguez對(duì)此深感擔(dān)憂:"我們目睹著軟件架構(gòu)的逐漸衰敗,因?yàn)榭萍夹袠I(yè)要求開(kāi)發(fā)者不斷向前推進(jìn),譬如鋪設(shè)新的鐵軌,然而他們身后的鐵軌卻在逐漸崩潰。"
什么是軟件侵蝕
我們大多數(shù)人并沒(méi)有注意到軟件侵蝕。這是軟件內(nèi)部結(jié)構(gòu)的一種無(wú)形降級(jí)。它使得軟件的可讀性、可維護(hù)性、可擴(kuò)展性和可復(fù)用性變得困難,甚至可能威脅到系統(tǒng)的功能安全。
軟件開(kāi)發(fā)是一個(gè)不斷累積的過(guò)程。新的依賴關(guān)系總是被引入到軟件的各個(gè)部分中。但有時(shí)候,新的代碼并非必要,反而使得代碼庫(kù)越來(lái)越臃腫,越來(lái)越難以理解、修改和維護(hù)。我們之所以稱之為Dependency Hell(地獄依賴)并非沒(méi)有原因。在實(shí)施功能或修復(fù)錯(cuò)誤時(shí),弄清楚哪些更改是必要的需要極大耐心和技巧。
軟件侵蝕的雪球效應(yīng)
添加功能和快捷方式會(huì)逐步增加軟件復(fù)雜性,每次迭代都在無(wú)形中侵蝕著軟件架構(gòu)的完整性。
開(kāi)發(fā)者在工作流中添加了快捷方式,導(dǎo)致代碼庫(kù)日益臃腫。想要一個(gè)新的功能?有可能會(huì)因此破壞一些東西。如果重新設(shè)計(jì)產(chǎn)品的某個(gè)方面,可能會(huì)引發(fā)一系列破壞性反應(yīng),影響到其他原本相互獨(dú)立的團(tuán)隊(duì)。每次改動(dòng)都可能帶來(lái)意想不到的連鎖反應(yīng)。
開(kāi)發(fā)者可能會(huì)因?yàn)轭~外的維護(hù)工作而感到沮喪,進(jìn)而再次添加一個(gè)快捷方式。如此反復(fù),直到代碼庫(kù)變得像極其不穩(wěn)定的真人版疊疊樂(lè)游戲。每個(gè)人都害怕成為那個(gè)讓整個(gè)結(jié)構(gòu)崩塌的人。這就是開(kāi)發(fā)者在面對(duì)日益復(fù)雜的代碼庫(kù)時(shí)所面臨的挑戰(zhàn)。
關(guān)注軟件侵蝕是為了長(zhǎng)期保障您的軟件投資
"這就是軟件侵蝕的本質(zhì),"Qt Group的Juan Rodriguez總結(jié)道,"無(wú)處不在的復(fù)雜性使得即使是發(fā)布最簡(jiǎn)單的新功能也變得痛苦無(wú)比。從長(zhǎng)期來(lái)看,這種情況會(huì)對(duì)效率和可擴(kuò)展性造成嚴(yán)重?fù)p害。"
我們是否忘了測(cè)試左移?
許多公司取了一種令人失望的"補(bǔ)救"措施。他們?cè)黾有迯?fù)錯(cuò)誤的時(shí)間,或者雇傭更多的QA工程師來(lái)減輕開(kāi)發(fā)者負(fù)擔(dān)。然而,這些都只是在玩"打地鼠"游戲,新錯(cuò)誤在被修復(fù)前并不存在,就像是用昂貴的創(chuàng)可貼來(lái)處理嚴(yán)重的傷口。
更明智的做法應(yīng)該是重新架構(gòu)代碼庫(kù)。對(duì)于只有兩年代碼歷史的公司來(lái)說(shuō),這可能相對(duì)容易,但對(duì)于那些擁有二十年遺留代碼的公司呢?即便他們完成了這項(xiàng)艱巨的任務(wù),如果第一次沒(méi)有真正吸取教訓(xùn),軟件侵蝕的循環(huán)就會(huì)再次開(kāi)始。
從開(kāi)發(fā)者在維護(hù)上投入的時(shí)間來(lái)看,這些教訓(xùn)似乎還沒(méi)有被充分吸取。軟件侵蝕的問(wèn)題依然存在,我們甚至可以預(yù)見(jiàn),AI代碼助手也面臨同樣的問(wèn)題。除非每個(gè)行業(yè)都能自覺(jué)地從一開(kāi)始就將QA緊密地融入到開(kāi)發(fā)過(guò)程中。
Juan Rodriguez建議:"從設(shè)計(jì)階段就開(kāi)始考慮這些問(wèn)題,而不是等到所有的代碼都寫完之后再開(kāi)始。"在編寫新代碼的時(shí)候,就要運(yùn)行靜態(tài)代碼分析和功能測(cè)試。即便已經(jīng)做了所有這些事情,但效果并不理想。如果是這樣的話,那就回到起點(diǎn),從宏觀層面去審視軟件架構(gòu),而不是只關(guān)注細(xì)節(jié)層次。架構(gòu)是否達(dá)到預(yù)期?在產(chǎn)品中定義的第一個(gè)組件是什么?組件之間如何通信?
當(dāng)您運(yùn)行靜態(tài)代碼分析并理解在哪里復(fù)制了代碼;當(dāng)您運(yùn)行架構(gòu)并理解依賴關(guān)系在哪里;當(dāng)您運(yùn)行功能測(cè)試并獲得結(jié)果,您就開(kāi)始理解了問(wèn)題的所在。這并不是選擇其中一個(gè)或另一個(gè)的問(wèn)題。所有的軟件產(chǎn)品最終都應(yīng)該能夠從多種來(lái)源獲取洞察。只有這樣,才能回到起點(diǎn),重新架構(gòu),以避免重蹈覆轍。
"遺憾的是,似乎很少有人真正知道自己實(shí)施的架構(gòu)是什么樣," Juan Rodriguez認(rèn)為,"如果我們理解自己的軟件架構(gòu),那么新增任何功能,都可以根據(jù)自己對(duì)架構(gòu)的理解來(lái)構(gòu)建軟件。那時(shí),就不再需要走捷徑了。"
Axivion Suite:解決軟件侵蝕的利器
Axivion Suite 是Qt Group專為解決軟件侵蝕問(wèn)題而設(shè)計(jì)的工具,通過(guò)靜態(tài)代碼分析、架構(gòu)驗(yàn)證和依賴關(guān)系管理,有效應(yīng)對(duì)軟件架構(gòu)侵蝕。它能自動(dòng)檢測(cè)代碼中的潛在問(wèn)題,確保代碼符合預(yù)期設(shè)計(jì),避免架構(gòu)偏離。通過(guò)對(duì)軟件架構(gòu)的全面分析,Axivion Suite幫助開(kāi)發(fā)者理解和修復(fù)架構(gòu)中的違規(guī)行為,防止復(fù)雜性和依賴關(guān)系的增加。此外,Axivion Suite還提供實(shí)時(shí)反饋,幫助開(kāi)發(fā)者在早期階段發(fā)現(xiàn)并修復(fù)錯(cuò)誤,從而提高軟件的可維護(hù)性和可靠性,特別適用于醫(yī)療和汽車等對(duì)軟件質(zhì)量要求高的行業(yè)。
理解并解決軟件侵蝕問(wèn)題,是每一個(gè)重視軟件質(zhì)量的企業(yè)都應(yīng)該關(guān)注的課題。Axivion Suite提供了強(qiáng)大工具,幫助企業(yè)從根本上解決這一問(wèn)題。讓我們一起,構(gòu)建更加穩(wěn)定和高效的軟件系統(tǒng)。
本文來(lái)源:36氪
文章轉(zhuǎn)載于其他網(wǎng)絡(luò),如有侵權(quán)請(qǐng)聯(lián)系我們及時(shí)刪除!