著 IT 行業(yè)中軟件產(chǎn)品的推陳出新,客戶對(duì)于軟件產(chǎn)品的要求也越來越高,因此如何高質(zhì)量的管理軟件代碼,及時(shí)地對(duì)代碼質(zhì)量進(jìn)行分析并給出合理的解決方案就成為了當(dāng)下必須要解決的一個(gè)問題。與當(dāng)今眾多的代碼質(zhì)量管理工具相比,SonarQube 更具有特色和競(jìng)爭(zhēng)力,其優(yōu)勢(shì)主要體現(xiàn)為:它是一個(gè)開源的代碼質(zhì)量管理系統(tǒng),支持 25+ 種語言,可以通過使

用插件機(jī)制與 eclipse 和 JIRA 等其他外部工具集成,從而實(shí)現(xiàn)了對(duì)代碼的質(zhì)量的***自動(dòng)化分析和管理。
本文首先討論了 SonarQube3.6 的基本工作原理與安裝流程;其次分析了使采用 SonarQube3.6 的三種不同方法來對(duì)不同語言和架構(gòu)的項(xiàng)目進(jìn)行代碼質(zhì)量管理的基本流程;***對(duì)自己在實(shí)際使用過程中遇到的問題進(jìn)行了總結(jié),并給出了相應(yīng)的解決方案。

本文主要討論如下幾個(gè)方面內(nèi)容:
SonarQube 的工作原理介紹
SonarQube 并不是簡(jiǎn)單地將各種質(zhì)量檢測(cè)工具的結(jié)果(例如 FindBugs,PMD 等)直接展現(xiàn)給客戶,而是通過不同的插件算法來對(duì)這些結(jié)果進(jìn)行再加工,最終以量化的方式來衡量代碼質(zhì)量,從而方便地對(duì)不同規(guī)模和種類的工程進(jìn)行相應(yīng)的代碼質(zhì)量管理。
SonarQube 在進(jìn)行代碼質(zhì)量管理時(shí),會(huì)從圖 1 所示的七個(gè)緯度來分析項(xiàng)目的質(zhì)量。
SonarQube支持連續(xù)檢查實(shí)踐。
在構(gòu)建SonarQube平臺(tái)時(shí),我們從一開始就考慮了持續(xù)檢查。因此,它附帶了支持該實(shí)踐所需的一切,質(zhì)量門,泄漏管理,分支分析,并行報(bào)告處理,治理功能,高可用性,較短的反饋循環(huán)等。


質(zhì)量門
SonarQube提供了GO / NO-GO門以促進(jìn)應(yīng)用程序推廣。
質(zhì)量門是SonarQube的一個(gè)重要的開箱即用功能。它提供了在每次分析時(shí)知道應(yīng)用程序是否通過或未通過發(fā)布標(biāo)準(zhǔn)的能力。換句話說,它在每次分析時(shí)都告訴您應(yīng)用程序是否“按質(zhì)量”準(zhǔn)備好進(jìn)行生產(chǎn)。
多語言
我們的解決方案涵蓋25種以上的編程語言。
通過提供對(duì)多種語言的支持,包括Java,C#,C / C ++,T-SQL,TypeScript,JavaScript和COBOL,SonarQube提供了一個(gè)涵蓋大量應(yīng)用程序的獨(dú)特解決方案。

插件庫

SonarQube體驗(yàn)可以通過插件來增強(qiáng)。
SonarQube提供了60多個(gè)社區(qū)和商業(yè)插件,可輕松使用其他語言,指標(biāo)和頁面來增強(qiáng)您的體驗(yàn)。還可以開發(fā)插件來滿足組織內(nèi)的特定需求。
優(yōu)點(diǎn)
我們?yōu)檎麄€(gè)開發(fā)組織增值。
無論您在開發(fā)組織中的角色如何,SonarSource解決方案都可以增加價(jià)值,因?yàn)槲覀儞碛心枰淖钕冗M(jìn)功能,以最大限度地提高質(zhì)量并管理軟件產(chǎn)品組合中的風(fēng)險(xiǎn)。
對(duì)于開發(fā)人員
軟件開發(fā)人員最終對(duì)代碼質(zhì)量負(fù)責(zé)。
代碼質(zhì)量是所謂的非功能性需求的一部分,因此是開發(fā)人員的直接責(zé)任。因?yàn)榇a質(zhì)量不應(yīng)該推遲到以后,所以我們的解決方案在開發(fā)過程的每個(gè)步驟(從IDE到發(fā)行版)(包括任何中間促銷活動(dòng))中都提供反饋。
這使開發(fā)人員可以就代碼質(zhì)量做出早期且受過良好教育的決策,使他們能夠做得更好,并交付更好的軟件。


用于DevOps
DevOps團(tuán)隊(duì)需要確保正確構(gòu)建軟件。
DevOps團(tuán)隊(duì)負(fù)有許多責(zé)任。其中包括支持開發(fā)過程,自動(dòng)化測(cè)試,確保質(zhì)量,提高生產(chǎn)率……并最終實(shí)現(xiàn)持續(xù)部署。良好的代碼質(zhì)量是實(shí)現(xiàn)所有這些目標(biāo)的必要條件,盡管還不夠。我們的解決方案提供了可在任何構(gòu)建/測(cè)試/部署步驟中添加的代碼質(zhì)量收費(fèi)門。
這使devOps團(tuán)隊(duì)可以自動(dòng)執(zhí)行一組質(zhì)量標(biāo)準(zhǔn),從而確保組織交付更好的軟件。
對(duì)于高管
SonarSource解決方案可降低風(fēng)險(xiǎn)并提高團(tuán)隊(duì)生產(chǎn)力。
管理人員需要能夠安全地操作軟件,并且其成本能夠證明投資回報(bào)是合理的。我們的解決方案使高管一目了然,他們面臨的運(yùn)營(yíng)風(fēng)險(xiǎn)以及緩解風(fēng)險(xiǎn)的成本。它也具有開箱即用的功能,可以系統(tǒng)地提高可維護(hù)性,從而提高開發(fā)團(tuán)隊(duì)的長(zhǎng)期生產(chǎn)力。
這使高管可以使用風(fēng)險(xiǎn)控制方法以最佳成本確保其組織交付更好的軟件。
