新聞中心
有些人在使用軟件時(shí)會(huì)遇到出錯(cuò)或體驗(yàn)不佳的情況,但可能沒(méi)有意識(shí)到代碼質(zhì)量問(wèn)題,但是軟件工程師查看軟件的代碼時(shí)可能知道這一點(diǎn)。造成這種情況可能是由于編程方式不合理,充滿錯(cuò)誤,過(guò)于冗長(zhǎng),或在使用術(shù)語(yǔ)和命名約定時(shí)非常不一致。幸運(yùn)的是,軟件工程師可以通過(guò)多種方法來(lái)提高代碼質(zhì)量,使其更易于檢查和測(cè)試,并減少以后必須修復(fù)所有錯(cuò)誤的麻煩。

代碼質(zhì)量的基礎(chǔ)知識(shí)
代碼質(zhì)量是指代碼的屬性和特征。代碼質(zhì)量可能會(huì)根據(jù)組織的特定業(yè)務(wù)和團(tuán)隊(duì)的特定需求而有所不同。雖然沒(méi)有明確的清單,但大致上有幾種策略或措施將高質(zhì)量的代碼與劣質(zhì)的代碼區(qū)分開(kāi)。
良好代碼的標(biāo)志:
- 清潔。
- 一致。
- 功能性或有用性—代碼應(yīng)按其將要執(zhí)行的操作。
- 易于用戶理解,而不僅是編程者自己了解。
- 高效:簡(jiǎn)潔的代碼。
- 可測(cè)試:良好的代碼應(yīng)進(jìn)行測(cè)試,以確保沒(méi)有錯(cuò)誤或缺陷。
- 易于維護(hù)。
- 將來(lái)易于構(gòu)建、重用或復(fù)制。
- 有良好的文件記錄:編寫(xiě)得很好,并遵守公認(rèn)的標(biāo)準(zhǔn)或風(fēng)格指南。
值得注意的是,所有這些標(biāo)志對(duì)于不同的人員或團(tuán)隊(duì)來(lái)說(shuō)可能意味著不同的含義。例如某人可能會(huì)認(rèn)為代碼寫(xiě)得清晰并且易于理解,而另一個(gè)人卻認(rèn)為代碼不清楚并且很難維護(hù)。但是,使用一些參數(shù)會(huì)很有幫助。
文檔、代碼標(biāo)準(zhǔn)和樣式指南
正如行業(yè)專(zhuān)家Damien Conway所描述的那樣:“文檔和代碼中的注釋是編程人員向未來(lái)自己傳達(dá)信息的一種方式,說(shuō)明了可能以某種方式編寫(xiě)代碼的原因?;蛘邽槭裁磮F(tuán)隊(duì)成員在特定時(shí)間做出了特殊決定,這也為其他團(tuán)隊(duì)成員提供了做出決策的見(jiàn)解?!?/p>
代碼標(biāo)準(zhǔn)也有助于在整個(gè)團(tuán)隊(duì)中提供統(tǒng)一的代碼,這讓其使用和維護(hù)變得更加容易。行業(yè)專(zhuān)家William Moore將它們描述為“特定編碼語(yǔ)言的一系列過(guò)程,是需要一種編碼格式、方法和不同的過(guò)程?!?/p>
樣式指南在一個(gè)地方提供了組織的標(biāo)準(zhǔn)約定(例如命名約定)和其他優(yōu)秀實(shí)踐。其目的是確保所有團(tuán)隊(duì)成員的代碼都是一致的,從而更易于使用和審查。如果希望真正擁有并采用它,并且可能需要對(duì)團(tuán)隊(duì)成員進(jìn)行一些培訓(xùn),但是應(yīng)該得到他們的同意。
谷歌、微軟和WebKit等一些公司已經(jīng)在網(wǎng)上發(fā)布了樣式指南,這些指南可以幫助用戶創(chuàng)建自己的樣式指南。此外,還有許多特定于編程語(yǔ)言的指南,例如為RealPython編寫(xiě)Alexander Van Tol,為Python程序員提供了一些很好的資源,其包括特定于Python的樣式指南和應(yīng)用代碼校驗(yàn)(Linter)。
代碼審查的重要性
代碼審查對(duì)于確保良好的代碼并提供查找問(wèn)題的方式至關(guān)重要,以便可以盡早解決。他們還可以確保所構(gòu)建軟件的一致性和可靠性。對(duì)于采用DevOps方式的組織而言,代碼評(píng)審是理所當(dāng)然的,并且已經(jīng)盡早地嵌入到流程中。發(fā)現(xiàn)錯(cuò)誤越早,解決錯(cuò)誤的速度就越快、越容易、代價(jià)也就越低。
SmartBear Software公司在2020年6月開(kāi)展了一項(xiàng)全球在線調(diào)查活動(dòng),對(duì)20個(gè)不同行業(yè)的740多位軟件開(kāi)發(fā)人員、測(cè)試人員、IT /運(yùn)營(yíng)專(zhuān)業(yè)人員以及業(yè)務(wù)負(fù)責(zé)人進(jìn)行調(diào)查。受訪者認(rèn)為代碼審查是提高代碼質(zhì)量最好的一種方式。
此次調(diào)查還表明,提高代碼質(zhì)量是影響代碼審查工具需求的業(yè)務(wù)驅(qū)動(dòng)因素。
此外,接受調(diào)查的80%以上的開(kāi)發(fā)人員表示,對(duì)代碼審查流程的滿意度與對(duì)軟件發(fā)布總體質(zhì)量的信心直接相關(guān)。
除了對(duì)代碼進(jìn)行審查之外,一些受訪者表示,進(jìn)行單元、連續(xù)和功能測(cè)試是提高代碼質(zhì)量的有效步驟之一。持續(xù)集成和集成也被認(rèn)為是軟件開(kāi)發(fā)的優(yōu)秀實(shí)踐。
就頻率來(lái)說(shuō),大約63%的受訪者至少每周一次參與某種形式的代碼審查。關(guān)于頻率和使用哪種方法的問(wèn)題,27%的受訪者表示每天進(jìn)行基于工具的代碼審查,而有19%的受訪者表示每周進(jìn)行一次。
全面的代碼審查可以確保代碼符合良好代碼標(biāo)志??所提到的屬性。代碼審查可確保代碼高效、無(wú)缺陷、符合標(biāo)準(zhǔn),并且其總體目標(biāo)是在問(wèn)題頻發(fā)之前盡早發(fā)現(xiàn)問(wèn)題。
組織可以通過(guò)多種方式進(jìn)行代碼審查,其中包括人工審查、配對(duì)編程、指導(dǎo)以及使用共享文檔以方便審查。但是,所有這些方法都可能很耗時(shí),并且代碼審查工具提供了一種使過(guò)程自動(dòng)化的方法。
審查代碼質(zhì)量的工具
大多數(shù)開(kāi)發(fā)人員已經(jīng)使用GitHub維護(hù)其Git存儲(chǔ)庫(kù),并習(xí)慣于使用pull請(qǐng)求和forks來(lái)檢查代碼。還有許多其他工具可幫助團(tuán)隊(duì)實(shí)現(xiàn)代碼審查過(guò)程的自動(dòng)化:
- Codacy
- Code Climate
- CodeGrip
- CodeScene
- Reviewboard
- Smartbear
- SonarQube
- Veracode
有關(guān)其他代碼檢查工具,需要查看在Geekflare公司編譯的列表。值得注意的是,安全性是代碼質(zhì)量的關(guān)鍵部分。
代碼質(zhì)量和安全性相似,因?yàn)榭梢酝ㄟ^(guò)靜態(tài)分析來(lái)識(shí)別這兩種類(lèi)型的問(wèn)題。開(kāi)發(fā)人員通常使用靜態(tài)分析方法來(lái)設(shè)計(jì)和測(cè)試組件。在這種情況下,代碼可能沒(méi)有運(yùn)行或執(zhí)行,但是工具本身使用源代碼作為輸入數(shù)據(jù)執(zhí)行。靜態(tài)分析使開(kāi)發(fā)人員還可以使用工具早期發(fā)現(xiàn)安全問(wèn)題,通常是在編寫(xiě)代碼時(shí)實(shí)時(shí)發(fā)現(xiàn)。這些工具在開(kāi)發(fā)人員編寫(xiě)時(shí)進(jìn)行掃描,然后在工程師的集成開(kāi)發(fā)環(huán)境(IDE)或編輯器中標(biāo)記任何的安全問(wèn)題。通過(guò)查看通過(guò)應(yīng)用程序的數(shù)據(jù)流路徑,靜態(tài)分析工具可以識(shí)別應(yīng)用程序在哪里處理數(shù)據(jù)或代碼會(huì)產(chǎn)生意想不到的結(jié)果。
靜態(tài)代碼審查軟件還可以幫助開(kāi)發(fā)人員了解代碼結(jié)構(gòu)和編碼標(biāo)準(zhǔn),并實(shí)施自己的編碼標(biāo)準(zhǔn)。當(dāng)開(kāi)發(fā)人員將代碼直接投入生產(chǎn)時(shí),靜態(tài)代碼分析還可以驗(yàn)證代碼質(zhì)量,減少以后出現(xiàn)的錯(cuò)誤。這些工具可以識(shí)別應(yīng)用程序?qū)?shù)據(jù)錯(cuò)誤的處理或代碼導(dǎo)致意外后果時(shí)對(duì)數(shù)據(jù)錯(cuò)誤的處理。
代碼重構(gòu)
另一種提高代碼質(zhì)量的方法是重構(gòu)。源代碼重構(gòu)將雜亂的、不正確的或重復(fù)的代碼轉(zhuǎn)化為具有較低復(fù)雜性的干凈代碼。它解決了當(dāng)多個(gè)開(kāi)發(fā)人員提交他們自己的代碼時(shí)可能出現(xiàn)的標(biāo)準(zhǔn)化問(wèn)題。重構(gòu)后的代碼更易于閱讀和維護(hù),它也更容易擴(kuò)展和添加新功能。刪除不必要的部分(如重復(fù)項(xiàng))也會(huì)導(dǎo)致代碼使用更少的內(nèi)存,執(zhí)行速度更快。
減少技術(shù)債務(wù)
生成不良的代碼最初可能看起來(lái)很有效,但是一旦需要修復(fù),可能會(huì)帶來(lái)麻煩。從一開(kāi)始就生成高質(zhì)量代碼的優(yōu)點(diǎn)之一是減少了技術(shù)債務(wù)。良好的代碼起初可能需要更長(zhǎng)的時(shí)間才能生成,但是可以減少錯(cuò)誤修復(fù)和重構(gòu)的時(shí)間,并且消除技術(shù)債務(wù)帶來(lái)的長(zhǎng)期痛苦。而高質(zhì)量的代碼可以使長(zhǎng)期開(kāi)發(fā)和可維護(hù)性更加容易。
提高代碼質(zhì)量的方法之一是不斷跟蹤技術(shù)債務(wù)并確定其優(yōu)先級(jí),以便使業(yè)務(wù)案例能夠重構(gòu)代碼庫(kù)中最重要的部分。
結(jié)論
編寫(xiě)高質(zhì)量的代碼不僅可以帶來(lái)更高質(zhì)量的軟件,而且可以提高團(tuán)隊(duì)滿意度。當(dāng)使用工具和框架以及樣式指南來(lái)消除決策中的許多猜測(cè)時(shí),這一點(diǎn)尤其重要,從而使開(kāi)發(fā)人員能夠?qū)W⒂诟P(guān)鍵的任務(wù)。然而,保持高質(zhì)量的代碼與編寫(xiě)代碼一樣重要,可以防止出現(xiàn)技術(shù)債務(wù)問(wèn)題。
新聞名稱(chēng):軟件工程師完整的代碼質(zhì)量指南
網(wǎng)頁(yè)URL:http://www.5511xx.com/article/dpdgchp.html


咨詢
建站咨詢
