【廣告】
Sonarqube的優(yōu)點:
(1)支持所有語言的檢測。一個工具,代理商sonarqube規(guī)則,搞定所有。
(2)靈活擴展,插拔式使用。自定義的代碼檢測規(guī)則,可自定義插件,sonarqube,獨立打成JAR包放到SONARQUBE插件目錄下,重啟即生效,開發(fā)使用非常方便。而且自帶UT驗證框架,開發(fā)。
(3)規(guī)則支持多租戶隔離。租戶可定制自己的規(guī)則集。
(4)生態(tài)強大,業(yè)界有諸多插件,代理商sonarqube 規(guī)則,與jenkins友好集成。
(5)部署使用便捷。
(6)架構松耦合,通過與maven/jenkins等集成,將代碼掃描的計算消耗遷移到業(yè)務或者構建方的資源上,代理商sonarqube安裝配置,極大的提升了自身的吞吐能力。
SonarQube工作原理
SonarQube 并不是簡單地將各種質量或覆蓋率檢測工具的結果(例如 CheckStyle、JACOCO 等)直接展現(xiàn)給客戶,而是通過不同的插件算法來對結果進行再加工,并蕞終以量化的方式來衡量代碼質量,從而方便地對不同規(guī)模和種類的工程進行相應的代碼質量管理,以便進行有針對性的代碼修復或重構。
SonarQube 在進行代碼質量管理時,會從以下的七個緯度對項目代碼質量進行分析
sonarqube問題修改總結
三、可讀性問題
1、用isEmpty()去做容器的空或者非空判斷。
說明:Use isEmpty() to check whether the collection is empty or not.
原因:增加可讀性。
2、刪除沒有用的import、field、class、method。
原因:增加可維護性。
修改建議:刪除無用代碼塊、申明、方法和引用。
3、if語句被拆分不利于可讀
說明:Merging collapsible if statements increases the code"s readability.
3、方法內多個return出口
錯誤示例:
解決建議:定義一個return,賦值,統(tǒng)一返回。
4、修改了入?yún)⒄f明:修改了入?yún)⒔档土舜a的可讀性,丟失了原始參數(shù)的值。
錯誤示例:
5、用equalsIgnoreCase()方法替代字符串的無視大小寫比較。
說明:Replace these toUpperCase()/toLowerCase() and equals() calls with a single equalsIgnoreCase() call.
原因:參數(shù)應當是final的
解決建議,利用一個臨時變量充當需要變動的參數(shù)。
企業(yè): 蘇州華克斯信息科技有限公司
手機: 13862561363
電話: 0512-62382981
地址: 蘇州工業(yè)園區(qū)新平街388號