65. El código limpio en programación

¿Qué es el código limpio? De la misma manera que un edificio se puede construir de muchas formas distintas, una aplicación puede programarse también de distintos modos.

A la hora de construir un edificio puedes utilizar distintos materiales, distintas arquitecturas, distintos procesos… Con el software pasa exactamente lo mismo, puedes escribir código de muchas formas. La misma aplicación, con exactamente las mismas funcionalidades, puede construirse de formas totalmente opuestas.

El concepto de código limpio trata de construir software de la forma más adecuada posible.

¿Por qué es importante el código limpio?

Que una aplicación haga lo que tiene que hacer no quiere decir que esté bien programado.

Para que un software esté bien construido, o en otras palabras, que contenga código limpio, tiene que cumplir una serie de requisitos.

En primer lugar, una aplicación bien construida tiene que hacer lo que debe hacer. Esto es algo obvio. Además tiene que tener los menores errores posibles, ya que es muy complicado hacer un software perfecto.

En segunda lugar, el código de la aplicación tiene que ser simple y fácil de entender para otros programadores. El 90% de las veces que escribimos código estamos programando algo que luego otras personas, o nosotros mismos, vamos a tener que mantener en un futuro. Si ese código es complejo de entender va a dificultar mucho el mantenimiento del mismo a la larga.

Otro punto muy importante es que el software tiene que ser fácilmente modificable y escalable. Toda aplicación va creciendo y modificándose con el paso del tiempo. Si no se ha pensado en ello a la hora de escribir el código inicial, puede volverse una pesadilla, o directamente imposible el hecho de continuar haciéndolo crecer.

Por último, cualquier tipo de software debería contener tests automatizados. Los tests automatizados permiten verificar de forma rápida y eficaz que cierto código funciona. Es una especie de maquina de la verdad. Si el software no contiene estos tests es muy difícil saber si funciona o no.

¿Por qué debería preocuparme por tener código limpio?

Desde el punto de vista del programador, interesa tener código limpio básicamente por dos razones: productividad y felicidad.

Por un lado, si el código que manejas o escribes es un desastre, cada vez que quieras hacer un cambio vas a tener que dedicar el doble o triple de tiempo a hacerlo. Si el código que tienes es código limpio todo será mucho más sencillo y serás más productivo en tu trabajo.

Por otro lado, si cada vez que tienes que trabajar sobre el código tienes que estar buscando y corrigiendo errores, o tienes que romperte la cabeza intentando entender cosas complejas, tu trabajo se convierte en una pesadilla.

Ahora bien, si nos preguntamos por qué debemos tener código limpio desde el punto de vista del dueño de un proyecto las respuestas son: viabilidad y coste.

Si tu proyecto no puede escalarse o modificarse seguramente acabe siendo inviable. Si el código que manejas es un desastre, será muy complicado de seguir manteniendo y evolucionarlo.

Finalmente, si cada vez que tienes que hacer un cambio los programadores tardan más y más tiempo en hacerlo, simplemente los costes van a ir aumentando exponencialmente. Hacer cambios tendrá cada vez más coste.

¿Cómo saber si tengo código limpio?

Es difícil saber si tienes código limpio o no si no tienes conocimientos técnicos. Es algo complicado de ver si no puedes entender el código.

Además, las malas consecuencias del mal código se suelen ver a largo plazo. Cuando intentas modificar, actualizar o ampliar el programa.

Si has contratado un desarrollo low-cost, fijándote únicamente en el precio, seguramente el código no sea todo lo limpio que debería ser. Muchas veces vale más la pena gastar algo más de presupuesto al inicio con el fin de tener un buen código. A la larga va a valer la pena y lo vas a rentabilizar.

En el caso de que tengas un código desastroso lo mejor es actuar cuanto antes. En el peor de los casos tendrás que reescribir la aplicación, lo cual muchas veces no es una buena idea. Pero lo que seguramente tengas que empezar a hacer es corregirlo poco a poco.

¿Cómo escribir código limpio

Cómo escribir código limpio no es algo sencillo de explicar. Tampoco pretendo hacerlo aquí porque existen muchísimos buenos y extensos recursos para ello. Quizás el mejor de ellos es el libro de Clean Code.

De todas formas, lo que sí puede hacer es dar una serie de pequeñas guías:

  • 1. Elegir bien los nombres de variables y funciones
  • 2. Evitar código duplicado
  • 3. Escribir código simple y sencillo
  • 4. Seguir una arquitectura clara
  • 5. Utilizar patrones de diseño
  • 6. Organizar bien el código
  • 7. Escribir tests automatizados

Como digo este concepto de escribir código limpio es algo que va más allá de un simple checklist. Hay que leer a fondo sobre ello y entender el por qué de cada cosa.

Conclusión

Así que en resumen, el código limpio trata de construir un programa o aplicación de la mejor manera posible de forma que pueda ser fácil de entender, modificable y escalable. Que un programa funcione o haga que lo tenga que hacer no quiere decir que esté bien construido.

Si no tenemos un código limpio tendríamos que hacer algo rápidamente para solucionarlo ya que los problemas serán mayores a medida que pase el tiempo. Básicamente nos encontraremos con problemas de productividad y costes más elevados a la hora de modificar y mantener el software.

Si eres programador y quieres saber como puedes mejorar tu código puedes empezar por leer el libro de Clean Code, buscar artículos por internet sobre el tema o leer también sobre patrones de diseño.

Como siempre sabes que puedes escuchar y recomendar este podcast a través de Android o iOS. También puedes contactar conmigo a través de mi formulario de contacto para cualquier duda o sugerencia. ¡Nos escuchamos el miércoles que viene a las 8AM!