PMD (mjukvara)
Stabil frisättning | 6.51.0 / 29 oktober 2022
|
---|---|
Förvar | |
Skrivet i | Java |
Operativ system | Windows , Linux , macOS |
Typ | Statiskt programanalysverktyg |
Licens | BSD License , Apache License 2.0 , GNU Lesser General Public License |
Hemsida |
|
PMD är en statisk källkodsanalysator med öppen källkod som rapporterar om problem som finns i applikationskoden. PMD inkluderar inbyggda regeluppsättningar och stöder möjligheten att skriva anpassade regler. PMD rapporterar inte kompileringsfel, eftersom det bara kan bearbeta välformade källfiler. Problem som rapporteras av PMD är ganska ineffektiv kod, eller dåliga programmeringsvanor, som kan minska programmets prestanda och underhållsbarhet om de ackumuleras. Den kan analysera filer skrivna i Java , JavaScript , Apex och Visualforce, PLSQL , Apache Velocity , XML och XSL.
Även om PMD inte officiellt står för någonting, har flera retro-akronymer föreslagits, inklusive till exempel Programmeringsmisstagsdetektor och Project Meets Deadline.
Funktioner
PMD kan upptäcka brister eller möjliga brister i källkoden, som:
- '
buggar — Töm försök/fånga/slutligen/byta block.
- Död kod — Oanvända lokala variabler , parametrar och privata metoder .
- Tomma if/while-satser.
- Överkomplicerade uttryck — Onödiga if-satser, för loopar som kan vara while-loopar.
- Suboptimal kod — slösaktig användning av sträng/strängbuffert.
- Klasser med hög cyklomatisk komplexitet .
- Duplicerad kod – Kopierad/klistrad kod kan betyda kopierade/klistrade buggar och minskar underhållsbarheten.
Licens
PMD släpps under en BSDish-licens medan delar av den är under Apache License 2.0 och LGPL .
Detektor för kopiering/klistra in (CPD)
Copy /Paste Detector ( CPD ) är ett tillägg till PMD som använder Rabin-Karps strängsökningsalgoritm för att hitta duplicerad kod . Till skillnad från PMD fungerar CPD med ett bredare utbud av språk inklusive Java, JavaServer Pages (JSP), C , C++ , Fortran , PHP och C# -kod.
Plugins
PMD har plugins för JDeveloper , Eclipse , jEdit , JBuilder , Omnicores CodeGuide, NetBeans / Sun Studio , IntelliJ IDEA , TextPad , Maven , Ant , Gradle , Gel, JCreator , Hudson , Jenkins , SonarQube , Visual Studio Code och Emacs . Det finns också en CLI- version.
Se även
Vidare läsning
- Rutar, Almazan, Foster (2004), "A Comparison of Bug Finding Tools for Java" . ISSRE '04 Proceedings of the 15th International Symposium on Software Reliability Engineering , IEEE, DOI: 10.1109/ISSRE.2004.1
externa länkar
- Officiell hemsida
- PMD på GitHub
- PMD på SourceForge
- CPD på SourceForge.net .
- Bok: "PMD Applied" Skriven av huvudutvecklaren, Tom Copeland ( [1] ).
- PMD och CPD i Maven