更新時間:2018-07-04 來源:黑馬程序員JavaEE培訓(xùn)學(xué)院 瀏覽量:
Java代碼質(zhì)量檢查工具及使用案例
在現(xiàn)在的軟件開發(fā)中,由于軟件的復(fù)雜度越來越高,業(yè)務(wù)也覆蓋很廣,各個業(yè)務(wù)模塊業(yè)務(wù)錯綜復(fù)雜。這樣就需要我們需要團(tuán)隊開發(fā),在我們團(tuán)隊中開發(fā)人員的經(jīng)驗、代碼風(fēng)格樣式都不一致,以及缺乏統(tǒng)一的標(biāo)準(zhǔn),從而導(dǎo)致我們的整個項目的的代碼難以閱讀,不便于后期維護(hù)。這幾天在研究代碼質(zhì)量管理,根據(jù)在網(wǎng)上搜集的資料及跟前輩學(xué)的一點(diǎn)經(jīng)驗整理一下,有需要的同學(xué)們可以查看,也便于以后自己回顧。
1、主要對下面的七塊進(jìn)行分析
編碼格式規(guī)范
代碼重復(fù)
代碼覆蓋率
依賴項分析
復(fù)雜度監(jiān)控
Java模擬技術(shù)
代碼評審和重構(gòu)
2、接下來的使用Eclipse 插件來揭示這些分析領(lǐng)域:
編碼格式規(guī)范:codeStyle和CheckStyle
代碼重復(fù):PMD 的 CPD
代碼覆蓋率:Coverlipse或者Emma
依賴項分析:JDepend
復(fù)雜度監(jiān)控:Metrics
Java模擬技術(shù):EasyMock、PowerMock
代碼評審和重構(gòu):Jupiter
3、FingBugs、PMD、Checkstyle
除FingBugs靜態(tài)分析工具外,還有PMD和Checkstyle,F(xiàn)ingBugs、PMD和Checkstyle三個工具各有不同的特點(diǎn),聯(lián)合使用有助于減少誤報錯誤,提高報告的準(zhǔn)確率。
這三個工具檢查的側(cè)重點(diǎn)各有不同:
FindBugs
基于Bug Patterns概念,查找java bytecode中的潛在bug。在目前版本中,它不檢查java源文件。 主要檢查bytecode中的bug patterns,也允許用戶自定義特定的bug patterns。
PMD
檢查java源文件中的潛在問題。
主要包括:
- 空try/catch/finally/switch語句塊
- 未使用的局部變量、參數(shù)和private方法
- 空if/while語句
- 過于復(fù)雜的表達(dá)式,如不必要的if語句等
- 復(fù)雜類
CheckStyle
檢查java源文件是否與代碼規(guī)范相符。
主要包括
- Javadoc注釋
- 命名規(guī)范
- Headers
- Imports
- Size沖突和度量,如過長的方法
- Whitespace
- Modifiers
- Blocks
- Coding Problems
- Class Design
- 重復(fù)代碼
- Miscellaneous Checks
- Optional Checks
需要說明的是,findbugs能檢測的bug pattern遠(yuǎn)不僅于此,甚至可以定制自己的探測器,因此,這個文檔會不斷擴(kuò)充,同時,也歡迎大家不斷探索和分享使用實(shí)踐。
本文版權(quán)歸黑馬程序員JavaEE學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!
首發(fā):http://java.itheima.com/