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. 

📚 Artikel Terkait di Wikipedia

Análisis estático de software

primera versión y la última). Code Quality Improvement - Coding standards conformance checking (DDJ) Episode 59: Static Code Analysis entrevista (Podcast)

SonarSource

febrero de 2018.  Arapidis, Charalampos (24 de agosto de 2012). Sonar Code Quality Testing Essentials (en inglés). Packt Publishing Ltd. ISBN 9781849517874

Linear Pulse Code Modulation

LPCM (del inglés Linear Pulse Code Modulation, en español «Modulación por Impulsos Codificados Lineal») es una forma específica de PCM en la que los niveles

W3C Markup Validation Service

W3C CSS Validation Service CSS Validation Tool SonarQube CSS Plugin, a code quality tool that provides a CSS validator as well as CSS good practice checks

Humo de incendios forestales en la costa este de Estados Unidos de 2023

leads to code red across Delaware Valley». 6abc Philadelphia (en inglés). 7 de junio de 2023. Consultado el 7 de junio de 2023.  «Air Quality Alert: Smoke

Steve McConnell

es autor de muchos libros de texto de ingeniería de software, incluyendo Code Complete (libro), Rapid Development, y Software Estimation. En 1998, McConnell

Árbol de sintaxis abstracta

Tree Metamodel Standard" PMD uses AST representation to control code source quality CAST representation Abstract Syntax Tree Unparsing Datos: Q127380

Nivel de calidad Phred

El nivel de calidad Phred (Phred quality score, en Inglés) es una medida de calidad en la identificación de las nucleobases generadas por la secuenciación