PeeEmDee (PMD) is a static ruleset-based Java
SourceCode analyzer that identifies potential problems like:
- Possible bugs - Empty try/catch/finally/switch blocks.
- DeadCode - Unused local variables, parameters and private methods
- Empty if/while statements
- Overcomplicated expressions - Unnecessary if statements, for loops that could be while loops
- Suboptimal code - wasteful String or StringBuffer usage
- Classes with high Cyclomatic Complexity measurements (see also CyclomaticComplexityMetric)
- DuplicatedCode - Copied/pasted code can mean copied/pasted bugs, and decreases maintainability.
While
PeeEmDee doesn't officially stand for anything, it has several unofficial names, the most appropriate probably being Programming Mistake Detector.
Typically,
PeeEmDee errors are not true errors, but rather inefficient code, i.e. the application could still function properly even if they were not corrected.
Homepage:
http://pmd.sourceforge.net
To many
PeeEmDee errors are style arguments elevated to laws. Examples include
CollapsibleIfStatements or
UselessParentheses that violate the concept of Clarity overides style every time. Then you are expected to clutter the code with @
SuppressWarnings("PMD") to suppress the false
failures.
MartinSpamer
see also
TestingFramework