代碼總是被嫌棄寫的太爛?裝上這個(gè)IDEA插件再試試!
來(lái)源:cnblogs.com/cjsblog/p/10735800.html
SonarLint(Sonar) 代碼質(zhì)量管理
Sonar是一個(gè)用于代碼質(zhì)量管理的開(kāi)源平臺(tái),用于管理源代碼的質(zhì)量 通過(guò)插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十幾種編程語(yǔ)言的代碼質(zhì)量管理與檢測(cè)
Sonar可以從以下七個(gè)維度檢測(cè)代碼質(zhì)量,而作為開(kāi)發(fā)人員至少需要處理前5種代碼質(zhì)量問(wèn)題
1、不遵循代碼標(biāo)準(zhǔn) sonar可以通過(guò)PMD,CheckStyle,Findbugs等等代碼規(guī)則檢測(cè)工具規(guī)范代碼編寫
2、潛在的缺陷 sonar可以通過(guò)PMD,CheckStyle,Findbugs等等代碼規(guī)則檢測(cè)工具檢測(cè)出潛在的缺陷
3、糟糕的復(fù)雜度分布 文件、類、方法等,如果復(fù)雜度過(guò)高將難以改變,這會(huì)使得開(kāi)發(fā)人員難以理解它們 且如果沒(méi)有自動(dòng)化的單元測(cè)試,對(duì)于程序中的任何組件的改變都將可能導(dǎo)致需要全面的回歸測(cè)試
4、重復(fù) 顯然程序中包含大量復(fù)制粘貼的代碼是質(zhì)量低下的,sonar可以展示源碼中重復(fù)嚴(yán)重的地方
5、注釋不足或者過(guò)多 沒(méi)有注釋將使代碼可讀性變差,特別是當(dāng)不可避免地出現(xiàn)人員變動(dòng)時(shí),程序的可讀性將大幅下降 而過(guò)多的注釋又會(huì)使得開(kāi)發(fā)人員將精力過(guò)多地花費(fèi)在閱讀注釋上,亦違背初衷
6、缺乏單元測(cè)試 sonar可以很方便地統(tǒng)計(jì)并展示單元測(cè)試覆蓋率
7、糟糕的設(shè)計(jì) 通過(guò)sonar可以找出循環(huán),展示包與包、類與類之間相互依賴關(guān)系,可以檢測(cè)自定義的架構(gòu)規(guī)則 通過(guò)sonar可以管理第三方的jar包,可以利用LCOM4檢測(cè)單個(gè)任務(wù)規(guī)則的應(yīng)用情況, 檢測(cè)耦合。
1. SonarLint
SonarLint是一個(gè)代碼質(zhì)量檢測(cè)插件,可以幫助我們檢測(cè)出代碼中的壞味道

下載與安裝

在需要檢測(cè)的單個(gè)文件或者單個(gè)項(xiàng)目上右鍵 --> Analyze --> Analyze with SonarLint
或者選中文件或目錄,點(diǎn)擊菜單欄 Analyze --> Analyze with SonarLint

我們還可以禁用某些規(guī)則

如果需要同步自定義的規(guī)則時(shí),可以綁定到SonarQube



查看檢測(cè)的結(jié)果

對(duì)于代碼中的警告我們不能視而不見(jiàn)

有了代碼質(zhì)量檢測(cè)工具以后,在一定程度上可以保證代碼的質(zhì)量
對(duì)于每一個(gè)問(wèn)題,SonarLint都給出了示例,還有相應(yīng)的解決方案,教我們?cè)趺葱薷模瑯O大的方便了我們的開(kāi)發(fā)
比如,對(duì)于日期類型盡量用LocalDate、LocalTime、LocalDateTime,還有重復(fù)代碼、潛在的空指針異常、循環(huán)嵌套等等問(wèn)題
有了代碼規(guī)范與質(zhì)量檢測(cè)工具以后,很多東西就可以量化 了,比如bug率、代碼重復(fù)率等,還可以自定義各種指標(biāo),方便管理人員查看
為此,我們需要一個(gè)平臺(tái)來(lái)記錄每次檢測(cè)分析的結(jié)果,這樣就可以進(jìn)行分析和統(tǒng)計(jì),并且可以直觀的看到這一切
于是,SonarQube 閃亮登場(chǎng)!
2. SonarQube
SonarQube是一個(gè)開(kāi)源的代碼質(zhì)量管理平臺(tái)




解壓&本地啟動(dòng)
https://docs.sonarqube.org/latest/setup/get-started-2-minutes/
unzip?sonarqube-7.7.zip
cd?sonarqube-7.7
bin/[OS]/sonar.sh?consol


<build>
????<plugins>
????????<plugin>
????????????<groupId>org.sonarsource.scanner.mavengroupId>
????????????<artifactId>sonar-maven-pluginartifactId>
????????????<version>3.6.0.1398version>
????????plugin>
????plugins>
build>




3. Alibaba代碼規(guī)約插件



關(guān)注公眾號(hào)【Java技術(shù)江湖】后回復(fù)“PDF”即可領(lǐng)取200+頁(yè)的《Java工程師面試指南》
強(qiáng)烈推薦,幾乎涵蓋所有Java工程師必知必會(huì)的知識(shí)點(diǎn),不管是復(fù)習(xí)還是面試,都很實(shí)用。

