Sie sind auf Seite 1von 16

Inicio Libros Tutoriales Eventos Foro Buscar

Analizando automticamente la
calidad de tus proyectos PHP
La calidad del software es un concepto muy controvertido y que genera debates muy
encendidos dentro del mbito informtico. Segn la definicin de la Wikipedia, la
calidad del software se asocia a dos conceptos diferentes pero muy relacionados:

Calidad funcional: el grado hasta el que la aplicacin satisface los requerimientos


funcionales que se acordaron antes de comenzar su desarrollo.

Calidad estructural: el grado hasta el que el propio cdigo de la aplicacin


satisface los requerimientos necesarios para conseguir la calidad funcional. Esta
calidad se relaciona por ejemplo con conceptos como la robustez y la flexibilidad de
la arquitectura de la aplicacin, la facilidad de mantenimiento del cdigo, etc.

Medir automticamente la calidad funcional no siempre resulta sencillo, ya que depende


en gran medida del funcionamiento de la propia aplicacin. Por el contrario, resulta
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
sencillo medir de forma automtica y objetiva la calidad estructural del cdigo. Por este
motivo, en los ltimos aos se han desarrollado numerosas herramientas que miden
este tipo de calidad.

Como no poda ser de otra manera, en el mbito de la programacin PHP tambin


existen muchas herramientas para controlar y mejorar la calidad del cdigo: PHP
Copy/Paste Detector, que detecta fragmentos de cdigo repetidos, PHP Mess Detector,
que detecta errores y cdigo no optimizado, PHP-CS-Fixer, que detecta y corrige los
errores en el estilo de tu cdigo, etc.

El principal problema de estas herramientas es que cada una analiza un aspecto aislado
de tu cdigo y no es fcil combinar los resultados de todas ellas en un nico resultado
que te indique si tu cdigo es bueno o malo. El otro problema es que sus resultados
siempre son absolutos (por ejemplo: "tienes 5 trozos de cdigo repetido"), por lo que es
difcil interpretarlos. En general, es ms til que las herramientas te muestren los
progresos que has hecho (por ejemplo: "gracias a los ltimos cambios, has reducido un
20% el cdigo repetido").

El servicio SensioLabs Insight


open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Para solucionar los problemas ms habituales de las herramientas de control de calidad
del cdigo, la empresa francesa SensioLabs, responsable entre otros del famoso
framework Symfony, ha desarrollado un servicio llamado SensioLabs Insight.

Se trata de un servicio que se ejecuta en la nube y que comprueba automticamente


la calidad de tu cdigo PHP realizando decenas de verificaciones de todo tipo. De esta
forma, y sin necesidad de instalar ninguna herramienta, podrs saber si tu cdigo es
seguro, flexible, fcil de mantener y si sigue las buenas prcticas del desarrollo de
aplicaciones profesionales.

SensioLabs Insight todava se encuentra en fase de beta privada, por lo que antes de
empezar a analizar tus aplicaciones, debers solicitar el acceso al servicio y esperar a
que te lo concedan. El servicio es completamente gratuito si el cdigo de tu aplicacin
es abierto y tambin existen planes de pago para que puedas probar tus proyectos
privados (existe incluso un plan de pago para ejecutar SensioLabs Insight en los
servidores de tu propia empresa).

Analizando proyectos pblicos o de


software libre
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Antes de empezar a analizar tus proyectos, crea gratis una cuenta de usuario en el sitio
SensioLabs Connect. Este proceso slo es necesario la primera vez y no te costar ms
de 1 minuto. Despus, entra en la portada de SensioLabs Insight y solicita tu acceso
pulsando el botn Join the private beta.

Una vez dentro del servicio, pulsa en enlace Add project y rellena el formulario con la
informacin especfica de tu aplicacin o proyecto. La siguiente imagen muestra la
informacin que he utilizado para analizar el proyecto easybook, que es la aplicacin de
software libre que utilizo para generar toda la documentacin que puedes leer en
librosweb.es:

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
La informacin que debes proporcionar para analizar tu proyecto es muy bsica:

Git Repository URL: la ruta en la que se encuentra alojado el cdigo de tu


aplicacin, como por ejemplo la URL del repositorio de GitHub o Bitbucket. Por el
momento, este servicio slo soporta los repositorios de tipo Git.

Name: el nombre con el que identificars esta aplicacin dentro de SensioLabs


open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Name: el nombre con el que identificars esta aplicacin dentro de SensioLabs
Insight.

Type: este es el dato ms importante, ya que indica el tipo de cdigo que se est
analizando. Con esta informacin, SensioLabs Insight adapta la configuracin de las
reglas de validacin antes de realizar cada anlisis. Por el momento, el servicio est
adaptado a Symfony 1, Symfony2, Silex, Drupal y Laravel. Como easybook no encaja
en ninguno de los tipos anteriores, he elegido la opcin genrica PHP Library.

Project Configuration: la opcin que siempre debes activar al analizar proyectos


pblicos es el checkbox llamado Public project. Esto hace que el anlisis del proyecto
sea pblico y cualquier usuario de SensioLabs Insight pueda ver el resultado.

Una vez configurado, pulsa el botn Create y ya tendrs todo listo para realizar el primer
anlisis. Para ello, pulsa el botn que se encuentra al lado del nombre del proyecto y en
unos instantes obtendrs el resultado del anlisis:

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
El resultado del anlisis siempre se muestra de forma resumida a travs de una de las
siguientes medallas:

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Adems, SensioLabs Insight tambin realiza una estimacin del tiempo que te costara
mejorar el cdigo de tu aplicacin para conseguir la medalla del siguiente nivel. En el
caso concreto del anlisis del proyecto easybook, el resultado es una medalla de plata y
un trabajo aproximado de tres semanas hasta conseguir la medalla de oro.

Para poder mejorar la calidad de tu cdigo, pulsa sobre el enlace que se encuentra
encima de la medalla, para ver los detalles del anlisis realizado y los errores concretos
que debes corregir:

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Lo mejor es que cada regla de validacin viene acompaada de una completa ayuda que
te explica por qu es importante corregir ese error, en qu afecta a tu aplicacin
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
(seguridad, rendimiento, mantenimiento, etc.) y cules pueden ser las consecuencias de
no corregirlo.

SensioLabs Insight es capaz de analizar proyectos PHP de cualquier complejidad. Para


ponerlo a prueba, he analizado el cdigo del proyecto Drupal 8, que est formado por
casi medio milln de lneas de cdigo. Despus de 26 minutos de anlisis, el resultado
es que con dos semanas de trabajo, Drupal 8 conseguira la medalla de bronce.
Actualmente Drupal 8 tiene 25 errores crticos, ms de 800 errores graves y varios miles
de otros errores menos importantes.

Analizando proyectos privados


Analizar un proyecto privado es un proceso muy similar al anlisis de proyectos
pblicos. En primer lugar, debes actualizar tu cuenta a uno de los planes de pago que
permiten los anlisis privados. En segundo lugar, debes configurar el acceso para que
SensioLabs Insight pueda acceder al cdigo privado de tu proyecto:

Paso 1. Accede a las opciones de configuracin de tu cuenta de SensioLabs Connect y


entra en la seccin SSH Keys (acceso directo a esta seccin:
connect.sensiolabs.com/#!ssh).

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
En la parte inferior de esa pgina vers la seccin "Manage your private SSH key". Si es la
primera vez que accedes, no tendrs ninguna clave privada. En ese caso, pulsa el botn
para crear tu clave SSH privada y vers algo como lo siguiente:

Paso 2. Accede al servidor donde guardas el cdigo privado de tu aplicacin y aade la


anterior clave SSH para que SensioLabs Insight pueda acceder a tu cdigo. Si alojas por
ejemplo tu cdigo en el sitio Bitbucket, slo tienes que acceder a las opciones de
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
configuracin de tu cuenta, ir a la seccin SSH keys y pulsar el botn Add key. En la nueva
ventana que se muestra, pega el contenido de la clave que generaste en el paso 1
anterior, tal y como muestra la siguiente imagen:

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Y ya est! Ahora ya puedes aadir tu proyecto privado en SensioLabs Insight como se
explic en la seccin anterior y tu cdigo ser analizado.

Referencias tiles
Listado de herramientas para controlar la calidad del cdigo PHP

Scrutinizer CI, servicio similar a SensioLabs Insight y que tambin analiza la calidad
de los proyectos PHP.

Calidad al estilo francs: presentacin en la que Fabien Potencier, cofundador de


SensioLabs y creador del framework Symfony, explica el servicio SensioLabs Insight y
los motivos que le llevaron a crearlo.

Comentarios
0 Comentarios LibrosWeb
1 Acceder

Ordenar por los mejores


Recomendar Compartir
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
S el primero en comentar...

S el primero en comentar.

TAMBIN EN LIBROSWEB

Cmo hacer copias de seguridad de una base de El proceso de rediseo de LibrosWeb.es


datos MySQL 2 comentarios hace un ao
6 comentarios hace un ao Evert Cruz Reyes Hola que tal, muy buena tu
Ramon Saki Yo mis copias de seguridad las guardo y gracias por compartir esta informacin, no tengo
temporalmente en el root y luego las subo en mucha experiencia y esto me ha sido
automtico a S3. Luego la borro. Creo que

Los generadores de PHP 5.5 Cmo mejorar el rendimiento de las animaciones


1 comentario hace un ao con CSS
Higinio Fuentes Gracias!Lastima que empiezen con 1 comentario hace un ao
PHP 5.5 :( Yoshua Lino Troncoso Como puedo hacer que
animaciones de css3 me consuman menos recursos,
que en dispositivos moviles no me

Suscrbete d Aade Disqus a tu sitio web Privacidad

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Fecha de publicacin
5 de noviembre de 2013

ETIQUETAS POPULARES

composer css diseo html javascript php programacin sistemas symfony

SUSCRBETE GRATIS
RSS Todos los tutoriales

RSS Tutoriales de diseo

RSS Tutoriales de programacin

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
3.756
2006-2017 LibrosWeb.es Contacto Novedades Condiciones Privacidad

das online

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com