Java項目最枯燥的一部分
也是程序員總是避而不談的一部分
就是檢查代碼
為了區塊括號
代碼縮進
Javadoc注釋以及命名約定而檢查其他人的上千行代碼的確是一件痛苦的事
更糟糕的是
通常代碼的檢查還受限於緊迫的項目進度
沒有足夠的時間對代碼的細節進行評估
因此代碼檢查經常變成了對代碼的美化練習
不管檢查者有多麼好的意圖
優化和邏輯檢查都退居次席
Java代碼分析器減輕了這樣的痛苦
在面對這種情況的時候
Java代碼分析器正是對症良藥
這些工具盡可能地將代碼檢查過程自動化
留給人工來做的就只有檢查類的缺陷以及核心邏輯並確定可能的優化方法
優化(去除不必要的實例化對象
檢查數據庫連接是否合理
確保數據在可能的情況下被緩存)對於任何代碼通常會帶來性能上的極大改進
最近我接觸了各種代碼分析器
我覺得一個基本的最重要的功能是與常用IDE(如NetBeans
Eclipse
jEdit以及JDeveloper)的集成
有一些代碼檢查工具在查找錯誤方面很有效
但是它們需要你根據給出的錯誤行的行號手工來追蹤錯誤
這樣的工具使用起來太累人了
與IDE環境集成了的工具可以大大簡化這個過程
因為代碼檢查的結果是由所使用的IDE顯示的
你只需在錯誤上雙擊就可以在Java編輯器中到達錯誤代碼所在的行
我的試用心得
在我試用過的工具中
我發現其中三個工具十分強大並合乎與IDE集成的標准
它們是
PMD
Checkstyle 和 Jalopy
PMD和Checkstyle
根據PMD的文檔
它會對代碼中的如下部分進行檢查
未使用的本地變量
空的catch塊
未使用參數
空if語句
重復的import語句
未使用的私有方法
可能是Singletons的類
短/長變量及方法名字
Checkstyle檢查如下部分
Javadoc注釋
命名約定
標題
Import語句
體積大小
空白
修飾符
塊
混合檢查(包活一些有用的比如非必須的System
out和printstackTrace)
它們的作用
不像PMD
Checkstyle能夠檢查Javadoc注釋
但是PMD提供了一項叫作CPD的很有用的功能
它檢查代碼的拷貝粘貼部分
我使用PMD找到的最頻繁的錯誤是未使用的import語句
未使用的私有變量以及意外重復拼寫
Checkstyle可以發現更多的錯誤
包括漏掉的Javadoc注釋
超過
個字符的行
不合約定的變量名
用tab來代替空格等等
兩個工具都允許創建自定義的規則
如果想在你的組織中使用它們中的一個
Checkstyle似乎更好一些
它檢查公司編碼約定的大多數項目
如果增強代碼質量是主要目標
那PMD是一個好的選擇
但是如果你想要更多的功能並真正使用工具來修改代碼
應該試試Jalopy
Jalopy
Jalopy是一個易於配置的源代碼格式程序
它能檢測並修補Java代碼中大量的習慣性缺陷
Jalopy更像一個代碼整理器而不是檢查器
Jalopy的插件現在已經支持大多數IDE
而且多數是無縫集成
我發現Jalopy特別強大
能夠干許多很酷的事情
例如
它可以修改代碼縮進
對齊括號
使行寬符合某個字符長度
插入相關的Javadoc注釋以及對import語句排序
Jalopy最好的地方是超級自定義功能
一個簡單的用戶界面就可以讓你選擇Jalopy的所有功能的開關
不需要XML配置文件
不要浪費資源
我建議大家使用這些工具來代替那些費時費力卻收效甚微的人工代碼檢查工作
一旦使用這些工具將代碼檢查變成了一個相對輕松的任務
你就可以把代碼檢查作為一項普通工作而不是在項目結尾被進度逼得一團糟時做的事情
這些工具也提供了與Apache Ant的集成
因此你可以每天運行這些代碼檢查器
在編譯或執行單元測試它們也能工作得很好
控制好你的代碼
並交付那些你真的認為是高質量的東西
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26903.html