sonarqube問題修改總結(jié)
三、可讀性問題
1、用isempty()去做容器的空或者非空判斷。
說明:use isempty() to check whether the collection is empty/not.
原因:增加可讀性。
2、刪除沒有用的import、field、class、method。
原因:增加可維護(hù)性。
修改建議:刪除無用代碼塊、申明、方法和引用。
3、if語句被拆分不利于可讀
說明:merging collapsible if statements increases the codes readability.
3、方法內(nèi)多個(gè)return出口
錯(cuò)誤示例:
解決建議:定義一個(gè)return,sonarqube服務(wù)器,賦值,統(tǒng)一返回。
4、修改了入?yún)⒄f明:修改了入?yún)⒔档土舜a的可讀性,丟失了原始參數(shù)的值。
錯(cuò)誤示例:
5、用equalsignorecase()方法替代字符串的-大小寫比較。
說明:replace these touppercase()/tolowercase()&equals() calls with a single equalsignorecase() call.
原因:參數(shù)應(yīng)當(dāng)是final的
解決建議,利用一個(gè)臨時(shí)變量充當(dāng)需要變動的參數(shù)。
sonarqube擴(kuò)展性
sonar實(shí)際上是一個(gè)web系統(tǒng),展現(xiàn)了靜態(tài)代碼掃描的結(jié)果,sonarqube演示,結(jié)果是可以自定義的,而真正實(shí)現(xiàn)代碼掃描的是sonar scanner這個(gè)工具,另外同時(shí)支持多種語言的原理是它的擴(kuò)展性,通過插件實(shí)現(xiàn)的,也就是java jar架包,可以在sonar平臺上在線安裝或者離線安裝。
sonarqube 的插件還可以對 java 以外的其他編程語言提供支持,sonarqube,對國際化以及報(bào)告文檔化也有---的支持。
sonarqube問題修改總結(jié)
四、異常處理
1、定義一個(gè)專門的異常用于異常處理
說明:using such generic excepti0ns as error, runtimeexception,throwable, andexception prevents calling methods from handling true, system-generated excepti0ns differently than application-generated errors.
錯(cuò)誤示例:
修改建議:定義一個(gè)自己的異常類繼承exception用于包裝runtimeexception。
2、單個(gè)方法不要跑出多個(gè)未處理的異常