首頁(yè)技術(shù)文章正文

Java代碼質(zhì)量檢查工具及使用案例

更新時(shí)間:2018-07-04 來(lái)源:黑馬程序員JavaEE培訓(xùn)學(xué)院 瀏覽量:

Java代碼質(zhì)量檢查工具及使用案例 


在現(xiàn)在的軟件開發(fā)中,由于軟件的復(fù)雜度越來(lái)越高,業(yè)務(wù)也覆蓋很廣,各個(gè)業(yè)務(wù)模塊業(yè)務(wù)錯(cuò)綜復(fù)雜。這樣就需要我們需要團(tuán)隊(duì)開發(fā),在我們團(tuán)隊(duì)中開發(fā)人員的經(jīng)驗(yàn)、代碼風(fēng)格樣式都不一致,以及缺乏統(tǒng)一的標(biāo)準(zhǔn),從而導(dǎo)致我們的整個(gè)項(xiàng)目的的代碼難以閱讀,不便于后期維護(hù)。這幾天在研究代碼質(zhì)量管理,根據(jù)在網(wǎng)上搜集的資料及跟前輩學(xué)的一點(diǎn)經(jīng)驗(yàn)整理一下,有需要的同學(xué)們可以查看,也便于以后自己回顧。

1、主要對(duì)下面的七塊進(jìn)行分析

編碼格式規(guī)范 
代碼重復(fù) 
代碼覆蓋率 
依賴項(xiàng)分析 
復(fù)雜度監(jiān)控 
Java模擬技術(shù) 
代碼評(píng)審和重構(gòu)

2、接下來(lái)的使用Eclipse 插件來(lái)揭示這些分析領(lǐng)域:

編碼格式規(guī)范:codeStyle和CheckStyle 
代碼重復(fù):PMD 的 CPD 
代碼覆蓋率:Coverlipse或者Emma 
依賴項(xiàng)分析:JDepend 
復(fù)雜度監(jiān)控:Metrics 
Java模擬技術(shù):EasyMock、PowerMock 
代碼評(píng)審和重構(gòu):Jupiter

3、FingBugs、PMD、Checkstyle

除FingBugs靜態(tài)分析工具外,還有PMD和Checkstyle,F(xiàn)ingBugs、PMD和Checkstyle三個(gè)工具各有不同的特點(diǎn),聯(lián)合使用有助于減少誤報(bào)錯(cuò)誤,提高報(bào)告的準(zhǔn)確率。

這三個(gè)工具檢查的側(cè)重點(diǎn)各有不同: 
FindBugs

基于Bug Patterns概念,查找java bytecode中的潛在bug。在目前版本中,它不檢查java源文件。 主要檢查bytecode中的bug patterns,也允許用戶自定義特定的bug patterns。

PMD

檢查java源文件中的潛在問題。

主要包括: 
- 空try/catch/finally/switch語(yǔ)句塊 
- 未使用的局部變量、參數(shù)和private方法 
- 空if/while語(yǔ)句 
- 過(guò)于復(fù)雜的表達(dá)式,如不必要的if語(yǔ)句等 
- 復(fù)雜類

CheckStyle

檢查java源文件是否與代碼規(guī)范相符。

主要包括 
- Javadoc注釋 
- 命名規(guī)范 
- Headers 
- Imports 
- Size沖突和度量,如過(guò)長(zhǎng)的方法 
- Whitespace 
- Modifiers 
- Blocks 
- Coding Problems 
- Class Design 
- 重復(fù)代碼 
- Miscellaneous Checks 
- Optional Checks 

需要說(shuō)明的是,findbugs能檢測(cè)的bug pattern遠(yuǎn)不僅于此,甚至可以定制自己的探測(cè)器,因此,這個(gè)文檔會(huì)不斷擴(kuò)充,同時(shí),也歡迎大家不斷探索和分享使用實(shí)踐。

 

本文版權(quán)歸黑馬程序員JavaEE學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!

作者:黑馬程序員JavaEE培訓(xùn)學(xué)院

首發(fā):http://java.itheima.com/

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!