代碼靜態(tài)掃描工具sonar介紹

聲明:內(nèi)容轉(zhuǎn)自https://blog.csdn.net/liuhaiguang2012/article/details/79394971


一、SonarQube整體介紹

? SonarQube為靜態(tài)代碼檢查工具,采用B/S架構(gòu),幫助檢查代碼缺陷,改善代碼質(zhì)量,提高開(kāi)發(fā)速度,通過(guò)插件形式,可以支持Java、C、C++、JavaScripe等等二十幾種編程語(yǔ)言的代碼質(zhì)量管理與檢測(cè)。

? 通過(guò)客戶端插件分析源代碼,sonar客戶端可以采用IDE插件、Sonar-Scanner插件、Ant插件和Maven插件方式,并通過(guò)各種不同的分析機(jī)制對(duì)項(xiàng)目源代碼進(jìn)行分析和掃描,并把分析掃描后的結(jié)果上傳到sonar的數(shù)據(jù)庫(kù),通過(guò)sonar web界面對(duì)分析結(jié)果進(jìn)行管理

可以從七個(gè)維度檢測(cè)代碼質(zhì)量:

(1)復(fù)雜度分布(complexity):代碼復(fù)雜度過(guò)高將難以理解

(2) 重復(fù)代碼(duplications):程序中包含大量復(fù)制、粘貼的代碼而導(dǎo)致代碼臃腫,sonar可以展示源碼中重復(fù)嚴(yán)重的地方

(3) 單元測(cè)試統(tǒng)計(jì)(unit tests):統(tǒng)計(jì)并展示單元測(cè)試覆蓋率,開(kāi)發(fā)或測(cè)試可以清楚測(cè)試代碼的覆蓋情況

(4) 代碼規(guī)則檢查(coding rules):通過(guò)Findbugs,PMD,CheckStyle等檢查代碼是否符合規(guī)范

(5) 注釋率(comments):若代碼注釋過(guò)少,特別是人員變動(dòng)后,其他人接手比較難接手;若過(guò)多,又不利于閱讀

(6) 潛在的Bug(potential bugs):通過(guò)Findbugs,PMD,CheckStyle等檢測(cè)潛在的bug

(7) 結(jié)構(gòu)與設(shè)計(jì)(architecture & design):找出循環(huán),展示包與包、類(lèi)與類(lèi)之間的依賴(lài)、檢查程序之間耦合度

二、SonarQube平臺(tái)由四部分組成:

1、 SonarQubeServer

1) Web Server, 瀏覽質(zhì)量的快照和配置sonarqube實(shí)例

2)SearchServer based on Elasticsearch, 執(zhí)行來(lái)自頁(yè)面的查詢(xún)請(qǐng)求

3)Compute EngineServer ,處理代碼分析報(bào)告并保存在sonarqube數(shù)據(jù)庫(kù)

2、SonarQube Database :

1) sonarqube實(shí)例的配置(安全、插件設(shè)置等)

2) 項(xiàng)目、視圖等的質(zhì)量快照。

3、SonarQube Plugins

語(yǔ)言、SCM、集成、身份驗(yàn)證和治理插件

一個(gè)或多個(gè)sonarqube Scanners運(yùn)行分析項(xiàng)目

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容