不得不說,不少人的代碼仍是寫的很不規範,以前沒接手如今這個項目的時候還真的不知道原來以前的人寫代碼這麼浪,各類魔法數字亂飛,各類try catch,Collection也不注意性能,只要功能能實現就行了,致使性能異常低下,還有各類從網上copy代碼也不看看性能的,最扯的是居然看到了一個MD5的實現。。。難道以前寫代碼的人不知道java自帶的md5實現嗎?也就不吐槽了,如今接手代碼須要對代碼進行整改重構,想先大概的掃一遍代碼,不過代碼量的確也很大,肉眼看的話,實在是有點累人,也就想着偷懶看能不能找些自動掃描工具,查了一下,目前用的比較多的也就PMD,checkstyle,findbugs,大體看了下,目前用的人比較多的好像是PMD,並且官網一直也在更新,就上網站下載下來了。html
不知道是否是由於被牆的關係,https://pmd.github.io/ pmd的包下載的特別慢,下載的速度一直保持在10幾K,好不容易下載完了,在下載的中間網上順便查了一下使用手冊,可是居然發現,網上的資料居然那麼老,都不能用了,仍是要去看官方文檔上的資料,筆者使用的是window7的系統,下載完以後,解壓出來,按下WIN+R,打開運行命令cmd,進入控制檯,進入到~\pmd-bin-5.4.4\bin,剛纔解壓的路徑下,接下來就是要對工程進行掃描了java
例子以下git
pmd -d E:\Eclipse-Projects\project-1.2-develop -f html -r e:\design.html -R java-designgithub
-d 是dir,指定代碼路徑,筆者掃描的是整個代碼工程,-f 是format,指定要輸出的格式,默認是txt, -R 是指定使用的是哪一種規則集,這裏說一下,網上目前看的,除了筆者的這篇文章其餘寫的幾乎都是錯的,至少我目前沒看到正確的規則集,新版的規則集格式換了,ide
目前pmd支持的規則集有 java-basic,java-unusedcode,java-imports,java-design,java-typeresolution,指定的規則集就是掃描的代碼必須知足必定的規則才能夠經過,若是不知足的話,pmd都會幫你羅列出不知足規則集的代碼,以及行號,還有-r 是-reportfile指定輸出的文件路徑,這樣基本的命令,運行的話就能夠等待控制檯完成,去指定路徑查看html,看工具給咱們的代碼提了哪些意見了,筆者認爲這個工具仍是不錯的,相比與checkstyle的話,checkstyle若是本身不寫規則的話,按照google或者sun自帶的規則的話,就實在太嚴格了,滿滿的都是報錯。。工具
PMD裏面還給咱們提供了一些好用的GUI的工具裏面的cpdgui能夠查找重複的代碼,bgastviewer能夠把代碼抽象成語法樹等等,剩下的你們能夠本身去摸索了,這個工具相對目前其餘的代碼審查工具,功能仍是挺全面的,你們能夠一試。性能