代碼寫的垃圾被嫌棄?
往期熱門文章:
3、多線程環(huán)境下,HashMap為什么會出現(xiàn)死循環(huán)?
4、你真的會寫for循環(huán)嗎?來看看這些常見的for循環(huán)優(yōu)化方式
今天推薦三個插件,它們都是代碼質量檢測的神器。可以掃描檢測出你項目中不符合規(guī)范的代碼,他們分別是 SonarLint、SonarQube、Alibaba代碼規(guī)約插件。
1. SonarLint
SonarLint是一個代碼質量檢測插件,可以幫助我們檢測出代碼中的壞味道。

下載與安裝

在需要檢測的單個文件或者單個項目上右鍵 -> Analyze -> Analyze with SonarLint
或者選中文件或目錄,點擊菜單欄 Analyze -> Analyze with SonarLint

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

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



查看檢測的結果

對于代碼中的警告我們不能視而不見

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




解壓&本地啟動
具體開始參考文檔:
https://docs.sonarqube.org/latest/setup/get-started-2-minutes/
下載下來這個工具,進行解壓執(zhí)行:
unzip sonarqube-7.7.zip
cd sonarqube-7.7
bin/[OS]/sonar.sh consol

啟動成功后,訪問 http://localhost:9000 用管理員賬號(admin/admin)登錄

接下來,為了把檢測的結果傳到服務器,我們需要配置一個Scanner,具體參考文檔:
https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Maven
這里我在項目中添加 sonar-maven-plugin 插件
<build>
<plugins>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.6.0.1398</version>
</plugin>
</plugins>
</build>
命令行執(zhí)行:mvn clean compile sonar:sonar
成功后,可以在控制臺中看到這樣的輸出:

再次刷新 http://localhost:9000/ 會看到跟剛才不一樣了



以上只是本地演示,在正式環(huán)境中這些數(shù)據(jù)當然要保存到數(shù)據(jù)庫中,具體安裝就不演示了,下面是文檔:
https://docs.sonarqube.org/latest/setup/install-server/
3. Alibaba代碼規(guī)約插件
阿里代碼規(guī)范,相信大家都不陌生。IDEA 中安裝這個插件即可,同時如果需要更多優(yōu)質 IDEA 插件推薦可以關注公眾號「Java后端」搜索「IDEA」就可以找到相關的插件推薦文章了。
這是代碼規(guī)約插件安裝方式:

安裝了此插件,就可以進行掃描,檢測出你寫的 "壞"代碼。

看看效果:

鏈接:cnblogs.com/cjsblog/p/10735800.html
最近熱文閱讀:
1、Redis的這些拓展方案 2、MySQL的自增 ID 用完了,怎么辦? 3、多線程環(huán)境下,HashMap為什么會出現(xiàn)死循環(huán)? 4、10個經(jīng)典場景帶你玩轉SQL優(yōu)化 5、你真的會寫for循環(huán)嗎?來看看這些常見的for循環(huán)優(yōu)化方式 6、編寫Spring MVC控制器的14個技巧 7、記一次性能優(yōu)化,單臺4核8G機器支撐5萬QPS 8、放棄 Hibernate、Mybatis!選擇 JDBCTemplate! 9、程序在計算機中是如何運行起來的 10、動靜分離 與 熱點緩存 關注公眾號,你想要的Java都在這里
