1. 程式人生 > >PMD程式碼檢查工具

PMD程式碼檢查工具

C:\tools\pmd-4.1\bin>pmd C:\project\***\src html>a.html rulese
ts/unusedcode.xml,rulesets/basic.xml

PMD 包含 16 個規則集,涵蓋了 Java 的各種常見問題,其中一些規則要比其他規則更有爭議:


基本(rulesets/basic.xml)—— 規則的一個基本合集,可能大多數開發人員都不認同它: catch 塊不該為空,無論何時重寫 equals(),都要重寫 hashCode(),等等。


命名(rulesets/naming.xml)—— 對標準 Java 命令規範的測試:變數名稱不應太短;方法名稱不應過長;類名稱應當以小寫字母開頭;方法和欄位名應當以小寫字母開頭,等等。


未使用的程式碼(rulesets/unusedcode.xml)—— 查詢從未使用的私有欄位和本地變數、執行不到的語句、從未呼叫的私有方法,等等。


設計(rulesets/design.xml)—— 檢查各種設計良好的原則,例如: switch 語句應當有 default 塊,應當避免深度巢狀的 if 塊,不應當給引數重新賦值,不應該對 double 值進行相等比較。


匯入語句(rulesets/imports.xml)—— 檢查 import 語句的問題,比如同一個類被匯入兩次或者被匯入 java.lang 的類中。


JUnit 測試(rulesets/junit.xml)—— 查詢測試用例和測試方法的特定問題,例如方法名稱的正確拼寫,以及 suite() 方法是不是 static 和 public。


字串(rulesets/string.xml)—— 找出處理字串時遇到的常見問題,例如重複的字串標量,呼叫 String 建構函式,對 String 變數呼叫 toString() 方法。


括號(rulesets/braces.xml)—— 檢查 for、 if、 while 和 else 語句是否使用了括號。


程式碼尺寸(rulesets/codesize.xml)—— 測試過長的方法、有太多方法的類以及重構方面的類似問題。


Javabean(rulesets/javabeans.xml)—— 檢視 JavaBean 元件是否違反 JavaBean 編碼規範,比如沒有序列化的 bean 類。


終結函式(finalizer)—— 因為在 Java 語言中, finalize() 方法不是那麼普遍(我上次編寫這個程式碼也經是好多年前的事了),所以它們的使用規則雖然很詳細,但是人們對它們相對不是很熟悉。這類檢查查詢 finalize() 方法的各種問題,例如空的終結函式,呼叫其他方法的 finalize() 方法,對 finalize() 的顯式呼叫,等等。


克隆(rulesets/clone.xml)—— 用於 clone() 方法的新規則。凡是重寫 clone() 方法的類都必須實現 Cloneable, clone() 方法應該呼叫 super.clone(),而 clone() 方法應該宣告丟擲 CloneNotSupportedException 異常,即使實際上沒有丟擲異常,也要如此。


耦合(rulesets/coupling.xml)—— 查詢類之間過度耦合的跡象,比如匯入內容太多;在超型別或介面就已經夠用的時候使用子類的型別;類中的欄位、變數和返回型別過多等。


嚴格的異常(rulesets/strictexception.xml)—— 針對異常的測試:不應該宣告該方法而丟擲 java.lang.Exception 異常,不應當將異常用於流控制,不應該捕獲 Throwable,等等。


有爭議的(rulesets/controversial.xml)—— PMD 的有些規則是有能力的 Java 程式設計師可以接受的。但還是有一些爭議。這個規則集包含一些更有問題的檢驗,其中包括把 null 賦值給變數、方法中有多個返回點,以及從 sun 包匯入等。


日誌(rulesets/logging-java.xml)—— 查詢 java.util.logging.Logger 的不當使用,包括非終狀態(nonfinal)、非靜態的記錄器,以及在一個類中有多個記錄器。

相關推薦

PMD程式碼檢查工具

C:\tools\pmd-4.1\bin>pmd C:\project\***\src html>a.html rulese ts/unusedcode.xml,rulesets/basic.xml PMD 包含 16 個規則集,涵蓋了 Java 的各種常見問題,

Java 程式碼檢查工具 PMD

  PMD是一款採用BSD協議釋出的Java程式程式碼檢查工具。該工具可以做到檢查Java程式碼中是否含有未使用的變數

Android靜態程式碼檢查工具Lint

轉自 https://blog.csdn.net/u012317510/article/details/78221218   前言 Android提供了一個叫做Lint的靜態程式碼檢查工具。Lint工具可以幫助你檢查可能影響應用質量和效能的程式碼問題。該工具會報告檢測到的每個問

技術管理者---提升研發程式碼質量---程式碼檢查工具Sonar

本文是《技術管理者---提升研發程式碼質量》系列文章第二篇,第一篇整體介紹請看博文《技術管理者---提升研發程式碼質量---總體方法論》。本文重點講三部分內容:1)sonar是什麼,研發體系如何利用sonar提供程式碼質量;2)開發過程中如何使用Sonar保證程式碼質量;3)

靜態程式碼檢查工具簡介

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

JS程式碼檢查工具ESLint

前面的話   ESLint是一個JavaScript程式碼靜態檢查工具,可以檢查JavaScript的語法錯誤,提示潛在的bug,可以有效提高程式碼質量,維持前端團隊高度一致的編碼風格。ESLint不但提供一些預設的規則,也提供使用者自定義規則來約束所寫的JavaScript程式碼。本文將詳細介紹ESLin

C++效能系列之靜態程式碼檢查工具介紹(一)

FxCop Integrator允許將獨立的FxCop(1.36或10.0)和Code Metrics PowerTool 10.0整合到VS2010中。 最新版本(2.0.0 RTW)包含以下新功能: 支援使用程式碼度量PowerTool的計算程式碼

JS 的靜態程式碼檢查工具 Flow

無意中看到了VUE的原始碼,沒看幾行就被看蒙了。 Vue: Class<Component> const vm: Component = this   想了一下,查了查相關資料,是不是ES 6的新語法。 確實不是。 是Facebook開源的JS靜態檢查工具用法。

程式碼檢查工具--findBugs

 “所謂讀書的意義,大概就是讓人眼界更開闊,對自我有更清醒的認識,而不至於狂妄。一個人讀的書越多,越會意識到自己的匱乏。” 偶然看到中國好聲音,健哥,語出驚人,建議多讀讀書籍 “讀書同樣需要自我約束和自我強制。童話讀起來毫不費力,但人的一生不可能只是讀童話,還

C#靜態程式碼檢查工具StyleCode -- 初探

最近我們Advent Data Service (ADS) 在專案上需要按照程式碼規範進行程式碼的編寫工作,以方便將來程式碼的閱讀與維護。 但是人工檢查起來容易遺漏或者格式不統一, ReSharper又是收費的,而且費用不菲。 於是美國的同事推薦了我們一款開源工

靜態程式碼檢查工具 cppcheck 的使用

      CppCheck是一個C/C++程式碼缺陷靜態檢查工具。不同於C/C++編譯器及其它分析工具,CppCheck只檢查編譯器檢查不出來的bug,不檢查語法錯誤。所謂靜態程式碼檢查就是使用一個工具檢查我們寫的程式碼是否安全和健壯,是否有隱藏的問題。 比如無意間寫了這

Android 程式碼檢查工具SonarQube

     程式碼檢查工具能幫我們檢查一些隱藏的bug,程式碼檢查工具中sonar是比較好的一個。官網Sonar 概述        Sonar 是一個用於程式碼質量管理的開放平臺。通過外掛機制,Sona

5個靜態程式碼檢查工具

FlexeLint 支援windows,linux http://www.gimpel.com/html/flex.htm pclint 只支援 windows http://www.gimpel.com/html/pcl.htm splint 只支援c程式碼的檔案 c

Android Sutdio自帶的程式碼檢查工具analyze的使用

溫故而知新可以為師矣! 以前覺得程式碼檢查是不是需要好專業的工具和專業的知識才能做啊,沒想到Android studio有自帶的工具,弄得特別簡單,簡直神器。 首先是使用方法: 1、在選單欄找到:analyze-->inspect code 2、選擇需要檢查的範

c++重複程式碼檢查工具

以前一直用simian,對C++支援比較好。但最近的新筆記本遇到問題 Errror GB2312,折騰了兩天沒搞定。 就換了PMD的CPD工具,很好用,還有一個簡單的GUI介面,對於臨時手工檢查的情況那是相當適合啊 可以從這裡下,https://pmd.github.io/

PMD 5.7.0 發布,Java 程序代碼檢查工具

使用 beats odi 每日 代碼 amp 抓取 變量 更多 PMD 5.7.0 發布了。PMD 是一款采用 BSD 協議發布的 Java 程序代碼檢查工具。該工具可以做到檢查 Java 代碼中是否含有未使用的變量、是否含有空的抓取塊、是否含有不必要的對象等。該軟件功能強

Findbugs、PMD、CheckStyles程式碼分析工具介紹

FindBugs、PMD和CheckStyle對比 1.     概要 工具 目的 檢查項 FindBugs 檢查.class 基於Bug Pattern

玩轉Eclipse — 自動程式碼規範檢查工具Checkstyle

大專案都需要小組中的多人共同完成,但是每個人都有自己的編碼習慣,甚至很多都是不正確的。那麼如何使小組所有開發人員都遵循某些編碼規範,以保證專案程式碼風格的一致性呢?如果硬性地要求每個開發人員在提交程式碼之前,都要對照的編碼規範將自己的程式碼檢查一遍,將是一個非常枯燥而且耗時的

主流Java靜態檢查工具checkstyle,findbugs,PMD異同點

工作之中遇到了JAVA靜態檢查相關內容,在此以作總結。 目錄 靜態檢查概念 靜態檢查理論基礎和應用技術 主流Java靜態分析工具 三者區別 三者內建程式設計規範 簡單對比 總結 靜態檢查概念 靜態程式碼分析是指無需執行被測程式碼,僅通過分析或檢查源程式的語法

C# 程式碼規範和質量檢查工具 StyleCop.Analyzers

簡介 原來一直用 ReSharper 來進行程式碼質量檢查,不過畢竟是收費的,所以想找個免費的可以推廣給公司的同事也一起用。搜尋了一下,找到了StyleCop,但是我在 VS 2015裡安裝 StyleCop 或者通過 Nuget 包安裝 StyleCop.MSBuild,雖然編譯以後能把 warning