PHPLOC, una alternativa a PHP Depend para medir la calidad del código fuente

2021-07-03 - Categorías: General / PHP

Siguiendo con las herramientas de medición de la calidad del código fuente del post anterior, encontramos que tenemos disponible una alternativa a PHP Depend, que tiene funciones parecidas. Se trata de PHPLOC de Sebastian Bergmann, que te puede sacar unas métricas muy descriptivas en modo texto de todo un programa.

Es bien sencillo de usar y los resultados son bien descriptivos por si mismos. Vamos al grano..

Instalando PHPLoc

Del mismo modo que en post anterior, y al estilo de tener un directorio de binarios PHP como en Symfony o Magento, podemos descargar en el directorio /bin el ejecutable phploc haciendo así:

mkdir bin
cd bin
wget https://phar.phpunit.de/phploc.phar -O phploc

Sacando las principales métricas del código fuente

Ya sólo queda lanzarlo sobre el directorio en donde tengamos los fuentes que queramos analizar. Si por ejemplo tenemos construido casi todo sobre el directorio src/ podríamos hacer lo siguiente:

php bin/phploc src

Y si todo va bien nos devolvería los resultados. Por ejemplo podría empezar con datos como los siguientes de la imagen. Número de directorios, ficheros, líneas de código, etcétera.. los principales datos:

Esta parte es sencilla, nos puede dar una visión rápida de lo grande y las proporciones entre líneas de código, ficheros, clases, métodos, etc. Si por ejemplo tenemos funciones que sean de más de 40-50 líneas ya sabemos que se puede refactorizar. Según tamaños de clases, números de clases en relación con el total de líneas sabremos que tanto puede haberse estructurado. Si hay mucho código que no está encapsulado en clases también es otro tema a refactorizar. Etcétera..

La complejidad ciclomática, que nos indica por ejemplo en estos resultados de la imagen anterior. En este caso vemos que estando cerca de 50, o más, tenemos un alto riesgo. El código tiene algunas clases y métodos que no serán muy testeables, probablemente tardemos en hacer debug, y existe mucho riesgo de que algo falle.

También tenemos las dependencias entre las partes del código. Si se usan variables globales, métodos o atributos estáticos.

Y finalmente tenemos estos últimos datos sobre la estructura. Es decir, tenemos qué tanto se ha estructurado la aplicación en clases, espacios de nombres, interfaces, etcétera..

Terminando y referencias

Con todo esto podemos hacernos una idea, como en el post anterior, de más elementos para mejorar la calidad del código fuente. Con todo esto podremos fijarnos objetivos para refactorizar, aumentar los tests, su fialibilidad, etcétera.

Sólo queda remitirte a la página en GitHub del proyecto:
https://github.com/sebastianbergmann/phploc

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

© 2021 JnjSite.com - MIT license

Sitio hecho con WordPress, diseño y programación del tema por Jnj.