在Eclipse環境下有很多外掛程式可以協助我們做代碼的靜態分析工作,這樣可以有助於我們儘早的發現代碼的Bug。下面我介紹幾種常用的外掛程式:
1. PMD
我們可以通過http://pmd.sourceforge.net/eclipse來為Eclipse安裝PMD外掛程式。
PMD是一種基於靜態規則的Java原始碼分析工具。它附帶了一些可以直接使用的規則,使用者也可以自己定義規則,檢查Java代碼是否存在潛在的問題: 可能的Bug - 比如空的try/catch/finally/switch語句塊 無用的代碼 - 比如沒有被使用的局部變數,參數和私人方法 空的if/while 運算式 過於複雜的運算式 - 比如不必要的if,for迴圈可以直接用while迴圈 次優的代碼 - 比如,String/StringBuffer的不當使用 類有過高的複雜度 重複的代碼
當然, PMD找到的問題可能並不是真正的bug,需要你自己來判斷。
2. CheckStyle
CheckStyle的外掛程式安裝地址http://eclipse-cs.sourceforge.net/update
更多詳細的資訊可以參考 http://eclipse-cs.sourceforge.net/downloads.html
CheckStyle也是基於規則的Java代碼靜態分析工具,它是為了Java代碼能夠有更好的品質,可讀性和可重用性。CheckStyle定義了可以配置的嚴格度,每一個它的規則都有對應的通知,警告和錯誤。它的檢查分析功能包括: Java代碼的注釋 命名規範 方法參數的數量,每一行代碼的長度 代碼中的空格 類構造時的方式 重複的代碼 複雜的代碼
實際使用當中,你會發現CheckStyle檢查出來的問題很多,可以根據需要取捨。
3. FindBugs
CheckStyle的外掛程式安裝地址 http://findbugs.cs.umd.edu/eclipse/
更多詳細的資訊可以參考 http://findbugs.sourceforge.net/manual/eclipse.html
顧名思義,FindBugs是協助我們分析尋找代碼中bug的工具,但是與上面兩個工具不同的是,它是通過符合代碼的位元組碼(class檔案)和一組缺陷模式來發現問題。也就是說FindBugs 不注重樣式或者格式,它試圖只尋找真正的缺陷或者潛在的效能問題,比如: Hash equals不匹配 Null指標的檢測 初始化之前讀取欄位
在實際開發過程中,個人認為的實用程度:FindBugs > PMD > CheckStyle