PMD y la calidad estática del código
- Área: Verificación de Entrega Software
- Carácter del recurso: Recomendado
Descripción
PMD es una herramienta de calidad de código encargada de validar los estándares de construcción de un desarrollo. Es decir, chequea la sintaxis del código fuente que ha sido desarrollado, encontrando las ocurrencias de un determinado problema que haya sido previamente configurado para ser detectado.
PMD y CPD (Copy and Paste Detection)
Una de las pruebas que se pueden automatizar con esta herramienta es la detección de trozos de código que hayan sido copiados de un método a otro o en distintas clases. El "copy and paste", es decir, el programar copiando y modificando código existente en lugar de crear soluciones genéricas, es lo que se llama un antipatrón, y su práctica es fuente de numerosos errores.
Para realizar estas pruebas tenemos el plugin de PMD, existente en Maven2 y eclipse, en el que se incluye la utilidad de CPD (Copy and Paste Detection). Para conocer detalles sobre el reporting de PMD consultar el siguiente enlace, donde también se puede encontrar los detalles de como invocar al plugin PMD desde cualquier proyecto.
Uso en MADEJA
PMD es una herramienta muy útil para verificar la calidad del código fuente entregado. Existen varias alternativas para su uso:
Desde Maven: se debe utilizar el plugin de PMD para Maven, para lo que se debe incluir el siguiente fragmento en el fichero pom.xml:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<configuration>
<linkXref>true</linkXref>
<sourceEncoding>UTF-8</sourceEncoding>
<minimumTokens>100</minimumTokens>
<targetJdk>1.5</targetJdk>
</configuration>
</plugin>Por defecto se aplican todas las reglas PMD, pero se pueden excluir o cambiar la severidad de las que se considere. Para ello se deben modificar los ficheros xml de definición y excluir o cambiar el nivel de cada prueba. En ese caso al fichero pom.xml se debe hacer referencia expresa al conjunto de ruleset que debe aplicar. Se puede consultar mas datos sobre el reporting obtenido aquí.
Desde Sonar: Sonar aporta métricas de calidad, basadas en un conjunto de reglas configurables en formado PMD. Para consultar más datos pulsar aquí.
Enlaces externos
Contenidos relacionados
Código | Título | Tipo | Carácter |
---|---|---|---|
RECU-0370 | Reporting de Maven | Herramienta | Recomendado |
RECU-0372 | Sonar | Herramienta | Recomendado |
RECU-0375 | Plugin de PMD para Eclipse | Herramienta | Recomendado |
RECU-0376 | Generación de Reglas para PMD con XPath | Herramienta | Recomendado |