【廣告】
SonarQube簡(jiǎn)介
SonarQube是一個(gè)很的代碼分析工具,可以幫助程序員們發(fā)現(xiàn)很多潛在的問題和BUG。
Sonar可以從以下維度檢測(cè)代碼質(zhì)量。
1. 不遵循代碼標(biāo)準(zhǔn)
sonar可以通過PMD,CheckStyle,F(xiàn)indbugs等等代碼規(guī)則檢測(cè)工具規(guī)范代碼編寫。
3. 注釋不足或者過多
沒有注釋將使代碼可讀性變差,特別是當(dāng)不可避免地出現(xiàn)人員變動(dòng) 時(shí),程序的可讀性將大幅下降 而過多的注釋又會(huì)使得開發(fā)人員將精力過多地花費(fèi)在閱讀注釋上,亦違背初衷。
4. 缺乏單元測(cè)試
sonar可以很方便地統(tǒng)計(jì)并展示單元測(cè)試覆蓋率。
Sonar-scanner為client。用于收集檢查數(shù)據(jù)并且發(fā)送到server中。也就是傳統(tǒng)的C/S關(guān)系:
sonarqube問題修改總結(jié)
二、BUG風(fēng)險(xiǎn)
1、聲明應(yīng)該使用Java集合接口,而不是具體的實(shí)現(xiàn)類,如“l(fā)inkedList”說明:聲明應(yīng)該使用Java集合接口,代理商sonarqube 規(guī)則,而不是具體的實(shí)現(xiàn)類,福建sonarqube 規(guī)則,如“l(fā)inkedList”
原因:定義良好的接口來隱藏實(shí)現(xiàn)細(xì)節(jié)。
錯(cuò)誤示例:
解決建議:
2、實(shí)體工具類應(yīng)當(dāng)隱藏其構(gòu)造器說明:實(shí)用工具類,代理商sonarqube 規(guī)則,靜態(tài)成員的集合,其目的并非要實(shí)例化。應(yīng)該沒有公共構(gòu)造函數(shù)。
錯(cuò)誤示例:
3、字符創(chuàng)比較上應(yīng)該防止空指針異常說明:字符創(chuàng)比較上應(yīng)該考慮到空指針異常的情況,一個(gè)變量在與字符串比較時(shí),代理商sonarqube 規(guī)則,應(yīng)當(dāng)把字符串放在左邊。
錯(cuò)誤示例:
關(guān)于SonarQube社區(qū)版使用問題及解決方法
1、解決SonarQube平臺(tái)數(shù)據(jù)問題
當(dāng)我們?cè)诖笠?guī)模使用SonarQube進(jìn)行代碼質(zhì)量檢查的時(shí)候,我們需要讓開發(fā)人員每次都能看到當(dāng)前特性分支的掃描分析數(shù)據(jù),以盡快解決有問題的代碼,提高代碼的質(zhì)量。開源版本會(huì)帶來一些問題,因?yàn)椴恢С忠粋€(gè)項(xiàng)目多分支的形式,所以我們按照特性分支的名稱來生成相對(duì)應(yīng)的掃描項(xiàng)目。(會(huì)產(chǎn)生很多Sonarqube項(xiàng)目)
雖然解決了數(shù)據(jù)不穩(wěn)定的問題,但又間接的帶來了一些問題。
對(duì)于SonarQube管理員來說很難管理,增加了任務(wù)負(fù)擔(dān)。
總結(jié)一下如何解決問題呢?
變更代碼掃描的模式,比如將每次特性分支掃描的數(shù)據(jù)關(guān)聯(lián)到提交的commit信息中。
總之蕞簡(jiǎn)單的方式就是付費(fèi)購(gòu)買開發(fā)版、企業(yè)版。小型團(tuán)隊(duì)也可以使用生成多項(xiàng)目的方式管理。
企業(yè): 蘇州華克斯信息科技有限公司
手機(jī): 13862561363
電話: 0512-62382981
地址: 蘇州工業(yè)園區(qū)新平街388號(hào)