PMD (Programming Mistake Detector) es un analizador de código fuente estático de código abierto que informa sobre problemas encontrados dentro del código de la aplicación. PMD incluye conjuntos de reglas incorporados y admite la capacidad de escribir reglas personalizadas. PMD no informa errores de compilación, ya que solo puede procesar archivos fuente bien formados. Los problemas informados por PMD son códigos bastante ineficientes o malos hábitos de programación, que pueden reducir el rendimiento y la capacidad de mantenimiento del programa si se acumulan. Es capaz de analizar archivos escritos en Java , JavaScript , Apex y Visualforce, PLSQL , Apache Velocity , XML y XSL.
Lanzamiento estable | 6.31.0 / 30 de enero de 2021 |
---|---|
Repositorio | |
Escrito en | Java |
Sistema operativo | Windows , Linux , macOS |
Tipo | Herramienta de análisis de programas estáticos |
Licencia | Licencia BSD , Licencia Apache 2.0 , Licencia pública general reducida GNU [1] |
Sitio web | pmd |
Si bien PMD no significa oficialmente nada, tiene varios nombres no oficiales, probablemente el más apropiado sea Programming Mistake Detector . [2]
Características
PMD puede detectar fallas o posibles fallas en el código fuente, como:
- Posibles errores : intente / atrapar / finalmente / cambiar bloques vacíos.
- Código muerto -Unused variables locales , parámetros y métodos privados .
- Declaraciones vacías if / while.
- Expresiones demasiado complicadas: declaraciones if innecesarias , para bucles que podrían ser bucles while.
- Código subóptimo: uso inútil de String / StringBuffer.
- Clases con medidas de alta Complejidad Ciclomática .
- Código duplicado: el código copiado / pegado puede significar errores copiados / pegados y reduce la capacidad de mantenimiento.
Licencia
PMD se publica bajo una licencia BSDish, mientras que partes de él están bajo Apache License 2.0 y LGPL . [1]
Detector de copiar / pegar (CPD)
El detector de copiar / pegar ( CPD ) es un complemento de PMD que utiliza el algoritmo de búsqueda de cadenas de Rabin-Karp para encontrar código duplicado . A diferencia de PMD, CPD funciona con una gama más amplia de lenguajes, incluidos Java, JavaServer Pages (JSP), C , C ++ , Fortran , PHP y código C # .
Complementos
PMD tiene complementos para JDeveloper , Eclipse , jEdit , JBuilder , CodeGuide de Omnicore, NetBeans / Sun Studio , IntelliJ IDEA , TextPad , Maven , Ant , Gradle , Gel, JCreator , Hudson , Jenkins , SonarQube , Visual Studio Code y Emacs . También hay una versión CLI .
Ver también
- Lista de herramientas para el análisis de código estático
- SonarQube
Referencias
- ^ a b "Licencia" . 18 de enero de 2015 . Consultado el 13 de agosto de 2015 .
- ^ "Destruye los molestos bichos parte 4: el final está cerca" . freesoftwaremagazine.com .
Otras lecturas
- Rutar, Almazan, Foster (2004), "Una comparación de herramientas de búsqueda de errores para Java" . ISSRE '04 Actas del 15 ° Simposio Internacional sobre Ingeniería de Confiabilidad de Software , IEEE, DOI: 10.1109 / ISSRE.2004.1
enlaces externos
- Página web oficial
- PMD en GitHub
- PMD en SourceForge.net
- CPD en SourceForge.net .
- Libro: "PMD Applied" Escrito por el desarrollador principal, Tom Copeland ( [1] ).
- PMD y CPD en Maven