La importancia del código limpio

La importancia del código limpio
Photo by ThisisEngineering RAEng / Unsplash

Muchas veces me ha tocado experimentar la frustración de equipos de desarrollo al regresar a modificar o actualizar cierta funcionalidad en su software. Incluso hasta 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. Ya que cuando llegó, encontró que el equipo estaba conformado por personas sumamente listas, con habilidades de programación y análisis excelentes que hacían código óptimo pero difícil de leer.

¿Qué pasaría cuando llegaran nuevos integrantes a modificar este código? Buena pregunta ¿no? Así que propuso crear código legible y mantenible sobre óptimo e inteligente.

Bueno y a todo esto, ¿Qué es el código limpio? Para mi, es aquel que está escrito como un buen texto. Que expone 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, ¿cuantas veces no tenemos una pesadilla en la oficina porque existe código con malas practicas? Te pondré un ejemplo de la vida real:

Hace mucho 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? Sigo sin saberlo.

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.

¿Cómo empiezo?

  • La mayor referencia de código limpio es el libro del mismo nombre, escrito por Robert C. Martin. Existen más referencias (como Code Complete) pero este 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 el, su filosofía y sus consejos