靜態代碼檢查工具簡介


靜態代碼檢查工具簡介

在 Java 軟件開發過程中,開發團隊往往要花費大量的時間和精力發現並修改代碼缺陷。傳統的代碼復審、同行評審,通過人工方式來檢查缺陷仍然是一件耗時耗力的事情。Java 靜態代碼分析(static code analysis)工具能夠在代碼構建過程中幫助開發人員快速、有效的定位代碼缺陷並及時糾正這些問題。

下面簡要介紹幾款可用於Java靜態代碼分析的工具。介紹的順序與工具所占市場份額無關。

1  阿里巴巴Java開發代碼檢測IDE插件

2017年10月,阿里推出了《阿里巴巴Java開發手冊(終極版)》,並在持續更新中。該開發手冊以Java開發者為中心視角,從編程規約、異常日志、單元測試、安全規約、工程結構、MySQL數據庫六個維度,分別給出了相應的開發要求。相應地,阿里在10月份的杭州雲棲大會上正式發布了Java代碼檢測IDE插件(支持與Eclipse、MyEclipse等工具的集成),供大家免費下載使用。個人感覺,阿里的插件對於MyEclipse的支持不夠友好,需要倒騰很久,不過最終還是成功了。

2  FindBugs

官網地址:http://findbugs.sourceforge.net/

FindBugs 是由馬里蘭大學提供的一款開源 Java 靜態代碼分析工具。FindBugs 通過檢查類文件或 JAR 文件,將字節碼與一組缺陷模式進行對比從而發現代碼缺陷,完成靜態代碼分析。FindBugs 既提供可視化 UI 界面,同時也可以作為 Eclipse/MyEclipse 插件使用。Findbugs規則比較簡單實用,不注重樣式與格式,屬於輕量級的工具。

個人感覺,FingBugs對於MyEclipse的支持也不夠友好,倒騰了很久,試驗了很多方法,但在MyEclipse中還是未能安裝成功,只能通過命令行模式來運行,極其不爽。雖然這個工具目前在業界的使用范圍很廣,從csdn在2016年所做的調查問卷來看,FindBugs的使用占比57%,但是,還是覺得現實很不美好。

3  Checkstyle

官網地址:http://checkstyle.sourceforge.net/

Checkstyle 是 SourceForge 的開源項目,通過檢查對代碼編碼格式,命名約定,Javadoc,類設計等方面進行代碼規范和風格的檢查,從而有效約束開發人員更好地遵循代碼編寫規范。Checkstyle 提供了支持大多數常見 IDE 的插件,例如Eclipse。Checkstyle 對代碼進行編碼風格檢查,並將檢查結果顯示在 Problems 視圖中,開發人員可通過在 Problems 視圖中查看錯誤或警告詳細信息。有關Checkstyle的使用可閱讀:代碼規范工具-Checkstyle使用手冊

4  PMD

官網地址:https://pmd.github.io/

PMD 是由 DARPA 在 SourceForge 上發布的開源 Java 代碼靜態分析工具。通過其內置的編碼規則對 Java 代碼進行靜態檢查,主要包括對潛在的 bug,未使用的代碼,重復的代碼,循環體創建新對象等問題的檢驗。PMD 提供了和多種 Java IDE 的集成,例如 Eclipse,IDEA,NetBean 等。

5  Sonar

Sonar是一個代碼質量管理開放平台,能對不同規模和種類的工程進行代碼質量管理,可以集成不同類型的工具一起工作。Sonar主要用於代碼質量管理。該工具目前在業界的使用范圍很廣,從csdn在2016年所做的調查問卷來看,Sonar的使用占比41%。有關Sonar的使用可閱讀:使用Sonar進行代碼質量管理

6  CodeAnalyzer

官網:http://www.spasvo.com/Products/CodeAnalyzer.asp

CodeAnalyzer簡稱CA,是上海澤眾軟件有限公司自主研發的代碼審查工具,用於實現靜態分析、代碼走查、代碼規范檢查以及代碼潛在錯誤分析。該工具並非開源,不過,可以在官網填寫基本信息后申請獲取試用版。

7  其他

Java靜態代碼分析工具不止上述這些,要了解更多資料可閱讀如下文章。

(1)常用Java靜態代碼分析工具的分析與比較

(2)靜態代碼分析工具列表分析---代碼分析工具列表(30款工具)

(3)靜態代碼分析工具清單:開源片(各語言)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM