【廣告】
Sonarqube的優(yōu)點(diǎn):
(1)支持所有語(yǔ)言的檢測(cè)。一個(gè)工具,搞定所有。
(2)靈活擴(kuò)展,插拔式使用。自定義的代碼檢測(cè)規(guī)則,可自定義插件,獨(dú)立打成JAR包放到SONARQUBE插件目錄下,重啟即生效,開(kāi)發(fā)使用非常方便。而且自帶UT驗(yàn)證框架,開(kāi)發(fā)。
(3)規(guī)則支持多租戶隔離。租戶可定制自己的規(guī)則集。
(4)生態(tài)強(qiáng)大,業(yè)界有諸多插件,與jenkins友好集成。
(5)部署使用便捷。
(6)架構(gòu)松耦合,通過(guò)與maven/jenkins等集成,將代碼掃描的計(jì)算消耗遷移到業(yè)務(wù)或者構(gòu)建方的資源上,極大的提升了自身的吞吐能力。
解決Sonarqube項(xiàng)目中的bug總結(jié)
①:變量聲明后不使用,華北sonarqube代理商,多余變量
②:方法名、變量名不符合命名規(guī)范
例如:方法名、參數(shù)名統(tǒng)一使用駝峰命名法(Camel命名法),代理商sonarqube代理商,除首字母外,其他單詞的首字母大寫(xiě),其他字母小寫(xiě),類(lèi)名每個(gè)組合的單詞都要大寫(xiě);
③:常量命名不規(guī)范
禁止縮寫(xiě)。命名盡量簡(jiǎn)短,不要超過(guò)16個(gè)字符
采用完整的英文大寫(xiě)單詞,在詞與詞之間用下劃線連接,代理商sonarqube代理商,如:DEFAULT_VALUE。
同一組的常量可以用常量類(lèi)封裝在一起,便于引用和維護(hù)
④:刪除無(wú)用的依賴(lài)
import中灰色的部分
⑤:禁止使用 System.out.println(""); 打印內(nèi)容
⑥:Controller類(lèi)中不要拋出異常,需要用try,catch捕獲
⑦:刪除無(wú)用的注釋?zhuān)缬糜跍y(cè)試的代碼
⑧:將程序中的 //TODO 盡快完成
sonarqube問(wèn)題修改總結(jié)
三、可讀性問(wèn)題
1、用isEmpty()去做容器的空或者非空判斷。
說(shuō)明:Use isEmpty() to check whether the collection is empty or not.
原因:增加可讀性。
2、刪除沒(méi)有用的import、field、class、method。
原因:增加可維護(hù)性。
修改建議:刪除無(wú)用代碼塊、申明、方法和引用。
3、if語(yǔ)句被拆分不利于可讀
說(shuō)明:Merging collapsible if statements increases the code"s readability.
3、方法內(nèi)多個(gè)return出口
錯(cuò)誤示例:
解決建議:定義一個(gè)return,賦值,統(tǒng)一返回。
4、修改了入?yún)⒄f(shuō)明:修改了入?yún)⒔档土舜a的可讀性,丟失了原始參數(shù)的值。
錯(cuò)誤示例:
5、用equalsIgnoreCase()方法替代字符串的無(wú)視大小寫(xiě)比較。
說(shuō)明:Replace these toUpperCase()/toLowerCase() and equals() calls with a single equalsIgnoreCase() call.
原因:參數(shù)應(yīng)當(dāng)是final的
解決建議,利用一個(gè)臨時(shí)變量充當(dāng)需要變動(dòng)的參數(shù)。
企業(yè): 蘇州華克斯信息科技有限公司
手機(jī): 13862561363
電話: 0512-62382981
地址: 蘇州工業(yè)園區(qū)新平街388號(hào)