jueves, 18 de julio de 2013

Code Smell: ¿ A que huele el código ?

Artículo perteneciente a la sección de calidad de código

Hola a todos,

En muchas ocasiones no tenemos tiempo para revisar a conciencia el código de otras personas, pero paradójicamente, a medida que vamos ganando experiencia todos los programadores obtenemos un cierto sexto sentido para detectar código que da "mala espina". No se puede explicar y como mucho se puede decir que la nomenclatura de las variables no es demasiado correcta, o que el código está estructurado "raro", o que cuesta de entender... es difícil argumentar esa sensación.

En los 90 Kent Beck (uno de los grandes investigadores de la calidad de código) acuñó el término de Code Smell (Mal olor del código) y propuso una lista básica de factores(que ha sido revisada y ampliada por cientos de personas) que hacen inclinarnos a pensar que el código no está bien del todo:
   - Código duplicado.
   - Código muerto.
   - Funciones grandes.
   - Demasiados parámetros.
   - Uso forzado de patrones de diseño.
   - Nombres de variables y funciones demasiado largos.
   - Nombre de variables y funciones demasiado cortos.
   - Nombres de variables y funciones que no explican lo que realmente hacen.
   - Uso excesivo de hardcodeos (datos que podrían estar en ficheros de configuración en vez de dentro el código)
   - Sentencias switch en exceso.(en lenguajes orientados a objetos, implica un mal diseño de herencia)
   - Excesivos comentarios.
   - Bloques de If's excesivamente grandes
   - Demasiado código preparado "porsiacaso" (cuando no se sabe nunca de lo que realmente pasará en el futuro)
   - Uso excesivo de tipos primitivos
   - Las funciones deberían tener solo una responsabilidad.
   - Encadenamiento excesivo (cuando se tiene una función que solo llama a otra, que llama a otra, que llama a otra.....)
    - Detección de un antipatrón de diseño (ya lo explicaremos con más calma en otro artículo)

El hecho que en el código que revisamos veamos alguna de estas características no significa que haya algo necesariamente mal, pero da bastantes indicios de que seguramente habrá problemas y será una zona de código que se deberá revisar con más detenimiento.

Espero que os haya gustado

Ya como nota final, os comento que el término Code Smell surgió en este libro, por si os interesa:


Nos vemos



LordPakusBlog

0 comentarios :

Publicar un comentario

Entradas populares