SonarLint(Sonar) 代碼品質管理
Sonar是一個用于代碼品質管理的開源平台,用于管理源代碼的品質 通過插件形式,可以支援包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十幾種程式設計語言的代碼品質管理與檢測

Sonar可以從以下七個次元檢測代碼品質,而作為開發人員至少需要處理前5種代碼品質問題
1、不遵循代碼标準sonar可以通過PMD,CheckStyle,Findbugs等等代碼規則檢測工具規範代碼編寫
2、潛在的缺陷sonar可以通過PMD,CheckStyle,Findbugs等等代碼規則檢測工具檢測出潛在的缺陷
3、糟糕的複雜度分布檔案、類、方法等,如果複雜度過高将難以改變,這會使得開發人員難以了解它們 且如果沒有自動化的單元測試,對于程式中的任何元件的改變都将可能導緻需要全面的回歸測試
4、重複顯然程式中包含大量複制粘貼的代碼是品質低下的,sonar可以展示源碼中重複嚴重的地方
5、注釋不足或者過多沒有注釋将使代碼可讀性變差,特别是當不可避免地出現人員變動時,程式的可讀性将大幅下降 而過多的注釋又會使得開發人員将精力過多地花費在閱讀注釋上,亦違背初衷
6、缺乏單元測試sonar可以很友善地統計并展示單元測試覆寫率
7、糟糕的設計通過sonar可以找出循環,展示包與包、類與類之間互相依賴關系,可以檢測自定義的架構規則 通過sonar可以管理第三方的jar包,可以利用LCOM4檢測單個任務規則的應用情況, 檢測耦合。
SonarLint
SonarLint是一個代碼品質檢測插件,可以幫助我們檢測出代碼中的壞味道
下載下傳與安裝
在需要檢測的單個檔案或者單個項目上右鍵 --> Analyze --> Analyze with SonarLint
或者選中檔案或目錄,點選菜單欄 Analyze --> Analyze with SonarLint
我們還可以禁用某些規則
如果需要同步自定義的規則時,可以綁定到SonarQube
檢視檢測的結果
對于代碼中的警告我們不能視而不見
有了代碼品質檢測工具以後,在一定程度上可以保證代碼的品質。
對于每一個問題,SonarLint都給出了示例,還有相應的解決方案,教我們怎麼修改,極大的友善了我們的開發。
比如,對于日期類型盡量用LocalDate、LocalTime、LocalDateTime,還有重複代碼、潛在的空指針異常、循環嵌套等等問題。
有了代碼規範與品質檢測工具以後,很多東西就可以量化 了,比如bug率、代碼重複率等,還可以自定義各種名額,友善管理人員檢視。
為此,我們需要一個平台來記錄每次檢測分析的結果,這樣就可以進行分析和統計,并且可以直覺的看到這一切。
于是,SonarQube 閃亮登場!
SonarQube
SonarQube是一個開源的代碼品質管理平台
解壓&本地啟動
https://docs.sonarqube.org/latest/setup/get-started-2-minutes/
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>
指令行執行:
mvn clean compile sonar:sonar
成功後,可以在控制台中看到這樣的輸出
再次重新整理 http://localhost:9000/ 會看到跟剛才不一樣了
以上隻是本地示範,在正式環境中這些資料當然要儲存到資料庫中,具體安裝就不示範了,下面是文檔
https://docs.sonarqube.org/latest/setup/install-server/
Alibaba代碼規約插件
阿裡代碼規範,相信大家都不陌生