1. 程式人生 > >IDEA-常用外掛,使用FindBugs尋找bug,程式碼分析

IDEA-常用外掛,使用FindBugs尋找bug,程式碼分析

bug無處不在,但是我們總希望少一點bug。

最近發現了一款好用的尋找bug的外掛,特此記下。

一、安裝

路徑:File-->Settings-->Plugins-->Browse repositories....-->輸入FindBugs-IDEA-->點選安裝

 

二、使用

注意:安裝後需要重啟idea

 

 有各種可選範圍

三、結果分析

1->Bad pratice程式設計的壞習慣 
主要是命名問題,比如類名最好以大寫開頭,字串不要使用等號不等號進行比較,可能會有異常最好用try-catch包裹的程式碼,方法有返回值但被忽略等等,這些如果不想改可以直接忽略.

2->Malicious code vulnerability 惡意程式碼漏洞 
聽起來很嚇人呀,主要是一些屬性直接使用public讓別的類來獲取,建議改為private併為其提供get/set方法. 
還有一些public的靜態欄位,可能會被別的包獲取之類的. 
這些也需要根據專案具體情況來,個人意見,在有的不重要類,有時直接公開使用屬性,可能更為便捷.如果你認為這些不需要修改,完全可以忽略.

3->Dodgy code 糟糕的程式碼 
·比如一個double/float被強制轉換成int/long可能會導致精度損失,一些接近零的浮點數會被直接截斷,事實上我們應該保留. 
在型別轉換的時候,我們應該為型別轉換提供一個安全的轉換方法,因為我們永遠不會知道,我們的app在使用者手裡會發生什麼,所以我們要儘可能的去減少這種發生錯誤的可能.

·比如使用switch的時候沒有提供default。

·多餘的空檢查,就是不可能為空的值,增加了不為空判斷,這是沒有必要的。屬於程式碼冗餘

·不安全的型別轉換等等。 
這項太多了,就不一一列舉了。

4->performance 效能 
主要是一些無用的程式碼,比如聲明瞭沒有用到的屬性等等

5->correctness 程式碼的正確性 這一項應該算是最重要的了 
主要是沒有對變數進行不為空判定,在特殊情況可能發生空指標異常.

 

參考文章:http://blog.csdn.net/fancy_xty/article/details/51718687

四、擴充套件

1、點選如下按鈕,可分析當前檔案,真是太強大了。

 2、有一個預設編碼檢查的類很煩

  我直接去掉檢查了:Dector:DefaultEncodingDector