PMD (Programming Mistake Detector) es un analizador de código fuente estático de código abierto que informa sobre los problemas encontrados dentro del código fuente de una aplicación.[1]​ PMD incluye conjuntos de reglas incorporados por defecto y admite la capacidad de escribir reglas personalizadas. No informa errores de compilación, ya que solamente puede procesar archivos fuente bien formados. Los problemas informados por PMD son malos hábitos de programación, y secciones de código fuente ineficiente, que pueden reducir el rendimiento y la capacidad de mantenimiento del programa si se acumulan.[2]​ Es capaz de analizar archivos escritos en los lenguajes Java, JavaScript, Apex y Visualforce, PLSQL, Apache Velocity, XML y XSL.[3]

Si bien PMD no significa oficialmente nada, tiene varios nombres no oficiales, de los cuales probablemente el más apropiado sea Programming Mistake Detector.[4]

Características

editar

PMD puede detectar fallas o posibles fallas en el código fuente, tales como:[5]

  • Errores posibles : bloques vacíos de sentencias try/catch/finally/switch
  • Código muerto: variables locales, parámetros y métodos privados no usados.
  • Declaraciones if/while vacías.
  • Expresiones demasiado complicadas: declaraciones if innecesarias, bucles for que podrían ser bucles while.
  • Código subóptimo: uso de String / StringBuffer inútil.
  • Clases con medidas de complejidad ciclomática alta.
  • Código duplicado: el código copiado/pegado puede significar errores copiados/pegados y reduce la capacidad de mantenimiento.

Licencia

editar

PMD se publica bajo licencia BSDish, mientras que partes de él están bajo Apache License 2.0 y LGPL.[6]

Detector de copiar/pegar (CPD)

editar

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 #.

Complementos

editar

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 .

Véase también

editar

Referencias

editar
  1. «Documentation Index | PMD Source Code Analyzer». pmd.github.io. Consultado el 29 de octubre de 2020. 
  2. baeldung (8 de enero de 2017). «Quick Intro to PMD». Baeldung (en inglés estadounidense). Consultado el 29 de octubre de 2020. 
  3. Dangel, reas (6 de mayo de 2019). «Code quality assurance with PMD». Data Respons (en inglés estadounidense). Archivado desde el original el 23 de septiembre de 2020. Consultado el 29 de octubre de 2020. 
  4. «Destroy annoying bugs part 4: the end is near». freesoftwaremagazine.com. 
  5. «Improving Project Quality with PMD». objectcomputing.com (en inglés). Consultado el 29 de octubre de 2020. 
  6. «License». 18 de enero de 2015. Consultado el 13 de agosto de 2015.