PMD (oprogramowanie)

PMD
Wersja stabilna
6.51.0 / 29 października 2022 ; 4 miesiące temu ( 2022-10-29 )
Magazyn
Napisane w Jawa
System operacyjny Windowsa , Linuksa , macOS
Typ Narzędzie do statycznej analizy programu
Licencja Licencja BSD , Apache License 2.0 , GNU Lesser General Public License
Strona internetowa pmd .github .io  Edit this on Wikidata

PMD to statyczny analizator kodu źródłowego typu open source , który zgłasza problemy wykryte w kodzie aplikacji. PMD zawiera wbudowane zestawy reguł i obsługuje możliwość pisania niestandardowych reguł. PMD nie zgłasza błędów kompilacji, ponieważ może przetwarzać tylko dobrze sformułowane pliki źródłowe. Problemy zgłaszane przez PMD to raczej nieefektywny kod lub złe nawyki programistyczne, które mogą zmniejszyć wydajność i łatwość konserwacji programu, jeśli się kumulują. Potrafi analizować pliki napisane w Javie , JavaScript , Apex i Visualforce, PLSQL , Apache Velocity , XML i XSL.

Chociaż PMD oficjalnie nic nie oznacza, zaproponowano kilka retro akronimów, w tym na przykład Programming Mistake Detector i Project Meets Deadline.

Cechy

PMD jest w stanie wykryć wady lub możliwe wady w kodzie źródłowym, takie jak:

  • '

błędy — Puste bloki try/catch/finally/switch.

  • Martwy kod — Nieużywane zmienne lokalne , parametry i metody prywatne .
  • Puste instrukcje if/while.
  • Zbyt skomplikowane wyrażenia — niepotrzebne instrukcje if w przypadku pętli, które mogą być pętlami while.
  • Nieoptymalny kod — Marnotrawstwo użycia String/StringBuffer.
  • Zajęcia z wysokimi pomiarami złożoności cyklomatycznej .
  • Zduplikowany kod — skopiowany/wklejony kod może oznaczać skopiowane/wklejone błędy i zmniejsza łatwość konserwacji.

Licencja

PMD jest udostępniany na licencji BSDish, podczas gdy jego części są objęte licencją Apache 2.0 i LGPL .

Detektor kopiowania/wklejania (CPD)

Detektor kopiowania/wklejania ( CPD ) to dodatek do PMD, który wykorzystuje algorytm wyszukiwania ciągów znaków Rabina-Karpa w celu znalezienia zduplikowanego kodu . W przeciwieństwie do PMD, CPD współpracuje z szerszą gamą języków, w tym Java, JavaServer Pages (JSP), C , C++ , Fortran , PHP i kod C# .

Wtyczki

PMD ma wtyczki dla JDeveloper , Eclipse , jEdit , JBuilder , Omnicore's CodeGuide , NetBeans / Sun Studio , IntelliJ IDEA , TextPad , Maven , Ant , Gradle , Gel, JCreator , Hudson , Jenkins , SonarQube , Visual Studio Code i Emacs . Jest też CLI wersja.

Zobacz też

Dalsza lektura

Linki zewnętrzne