¿Como es el “Clean Code”?

Escribir un buen código es como un arte. No todo el mundo sabe apreciar la calidad de una obra de arte, hay que tener un sexto sentido. Para escribir un buen código hay que tener “Code Sense”. A menudo cuando vemos un código bien escrito no sorprende lo sencillez como soluciona los problemas. El buen código parece como si estuviera hecho para el problema.

Bjarne Stroustrup, inventor of C++ and author of The C++ Programming Language:

“I like my code to be elegant and efficient. The logic should be straightforward to make it hard for bugs to hide, the dependencies minimal to ease maintenance, error handling complete according to an articulated strategy, and per- formance close to optimal so as not to tempt people to make the code messy with unprinci- pled optimizations. Clean code does one thing well.”

1. Su lógica es sencilla.

La lógica debe ser sencilla para dificultar que se escondan los errores. Un código limpio es fácil de leer y de entender. Si contiene errores son fáciles de encontrar.

2. El código limpio hace una cosa bien hecha.

El código limpio esta enfocado. Cada función, clase, variable, representan una sola idea, sin estar enterrada en otros detalles. El buen código es simple y directo. Sin detalles innecesarios.

3. Fácil de leer

Escribir un código no es muy distinto de escribir una novela. Siempre hay que tener presente al lector.

4. No tiene repeticiones

Si realmente cada parte del código esta enfocada a lo que tiene que hacer, nunca hará falta repetirlo.

5. Es fácil de cambiar

La mayor parte del tiempo cuando programamos la dedicamos a leer el código para entenderlo hasta que estamos seguros de que el cambio que vamos a hacer y donde hacerlo. Mientras leemos nos movemos arriba y abajo y si el código esta ordenado y bien escrito nos será fácil seguir el hilo y difícil perdernos. Una de las condiciones necesarias para que un código sea fácil de cambiar es que esté bien escrito.

6. No tiende a empeorarse

Haciendo alusión a la metáfora de las ventanas rotas. Un edificio con las ventanas rotas parece abandonado, por tanto la gente lo trata como tal. No pasará nada si se rompe otra ventana o si pintamos las paredes. Algo parecido pasa con el código. Un buen código hace tomar consciencia a quien lo modifica a que lo mantenga limpio.

No es el lenguaje que hace que los problemas parezcan simples, sino el programador.

Keep calm and write clean code

La regla del “Boy Scout””

¿Qué pasaría si un médico cirujano no se lavase las manos antes de una operación ? Pongamos que el enfermo le dijera que se diera prisa y que por el no hace falta que se las lave. En definitiva, ¿ el cliente es quien tiene la razón no ?.

Sería muy poco profesional por parte del médico si en este caso hiciera caso al cliente/enfermo. Es él quien sabe al no lavarse las manos provocaría una infección.

Pues cuando se propuso por primera vez el habito de lavarse las manos por Ignaz Semmelweis en el 1847 la propuesta fue desestimada alegando que los médicos estaban demasiado atareados y no tenían tiempo para lavarse las manos antes de cada operación.

Siguiendo este mismo razonamiento, cuando un programador no hace lo que cree conveniente y deja que su código se ensucie porque su manager le dice que se de prisa. Este programador esta siendo poco profesional.

La técnica del “Boy Scout” nos puede ayudar a dejar el código limpio a pesar de las prisas. Se trata de:

Intentar dejar siempre el código más limpio de como lo encontramos

No hace falta hacer grandes cambios. Simplemente:

  • Mejorar el nombre de una variable
  • Simplificar un condicional
  • Troceando un método demasiado largo
  • Eliminar un comentario obsoleto o una clase no utilizada

Poco a poco el código del proyecto irá mejorando. La mejora continua esta íntimamente relacionada con el hecho de ser profesional.