La importancia del código limpio

Muchas equipos que conozco han experimentado la frustración al regresar a modificar o actualizar cierta funcionalidad en su software y no saber que hacer. Incluso los he visto maldiciendo a ex-compañeros o a si mismos por dejar un código cero legible y, por lo tanto, cero mantenible.

En teoría, en el mundo real (empresarial o startups) no debería de pasar, puesto que el código que se hace en estos entornos es leído y mantenido por muchas personas y debería de ser lo suficientemente legible y mantenible para todos. Pero por desgracia, no es así.

De hecho, hace unos años leía una entrada del blog de Dropbox sobre la salida de Guido van Rossum del equipo. Y, una de las tantas cosas que hizo fue mantener y fomentar una cultura de código limpio dentro de los equipos de desarrollo.

Cuando él llegó, encontró que el equipo estaba conformado por personas inteligentes, con habilidades de programación fuera de serie. Que hacían código óptimo, pero difícil de leer 😥.

¿Qué pasaría cuando llegaran nuevos integrantes a modificar el código?

Buena pregunta ¿no? Pues el buen Guido se propuso crear código legible y mantenible sobre óptimo e inteligente.

¿Qué es el código limpio?

Para mi, es aquel que está escrito como un buen libro. Tiene la capacidad de exponer de manera clara de que va el sistema o el proceso, su motivo principal de existencia, su dominio de negocio.

El código limpio como pieza clave del mantenimiento

Guido tuvo razón, ¿Cuántas veces no tenemos una pesadilla en la oficina porque existe código con malas practicas? Te pondré un ejemplo de la vida real:

Hace tiempo trabajé en un proyecto en el que en cierta parte del código existían 15 variables nombradas desde el uno al quince. Para mi sorpresa la variable que debería llamarse once, se llamaba dieciuno, la variable doce: diecidos y así hasta el diecicinco. ¿De verdad? ¿Para que servían?

Para nuestra (todavía) mala suerte, este tipo de proyectos carece de documentación. ¡Qué lindo sería que nuestro código se auto-documente!… Que por golpe de vista entendamos que es un software de gestión administrativa y no otra solución de Spring y todo gracias a un buen código. Un código limpio.

Esto requiere disciplina y enfoque. Es un trabajo duro que ofrece una recompensa valiosa: ¡mantenimiento sin dolor ✨!

Me gusta la idea ¿Cómo empiezo?

  • La mayor referencia es el libro Clean Code, escrito por Robert C. Martin. Existen más referencias (como Code Complete) pero el escrito por el "Tío Bob" es suficiente para empezar.
  • Empieza a refactorizar tus side projects guiado por el libro y cuidando de no romper la funcionalidad existente.
  • Implementa una cultura de código limpio en tu equipo… y que sea tan importante como tus estándares de codificación.
  • Primero legible-mantenible vs óptimo-inteligente.
  • No dejes pasar por ningún motivo el código sucio, recuerda la teoría de las ventanas rotas. Si otros ven en la solución código sucio, creerán que es correcto.
  • Integra uno o más días de refactorización en tus sprints.

Por último, me gustaría compartirte una entrevista que le hicieron a Robert C. Martin para que conozcas un poco más de él, su filosofía y sus consejos