Clean Code: Principios
En este artículo os voy a explicar los principios sobre la filosofía “clean code”. Esta filosofía reúne un conjunto de ideas para hacer que el código sea más fácil de leer, mantener, extender y que sea menos propenso a errores. Estas ideas están muy bien explicadas en libro Clean Code de Robert C. Martin, el cual recomiendo leer sin duda.
Bueno sin más dilación aquí explico los principios más importantes, que si se aplican, mejorarán ampliamente nuestro código:
1. Usar nombres con significado
El código debe poder leerse como si fuera un libro, para ello, en las estructuras públicas, hay que utilizar nombres concretos y claros para las variables, métodos, clases, etc. y para las estructuras privadas se puede ser todo lo largos y descriptivos que se necesite. Un nombre debe elegirse con cuidado y encontrar uno realmente bueno puede costar mucho esfuerzo, pero mejorará vuestro código ampliamente.
2. Realiza estructuras de código sencillas
Las estructuras que son largas se acaban volviendo imposibles de entender, sin embargo,
si son cortos simplifican la comprensión del código y lo hace más mantenible. Según el libro mencionado, nos recomiendan un límite de líneas de las clases (500 líneas) y de funciones (10 – 20 líneas).
3. Las estructuras de código deben hacer una única cosa
Es decir, debe haber una alta cohesión. Si una clase, por ejemplo, hacer más de una cosa, será propensa a más cambios, nos costará más testearla y el código crecerá descontroladamente.
4. Número limitado de argumentos en las funciones y métodos
Hay que preferir función sin parámetros sobre las que sí tienen, porque el resultado de las funciones que tienen parámetro dependiendo del valor de cada uno de ellos.
Además, es más difícil testear las funciones con muchos parámetros. El libro recomienda que usar más de 3 argumentos debe estar muy justificado y que es mejor evitarlos.
5. No repitas código (Principio DRY)
Principio Don’t Repeat Yourself, es decir, no repitas código. Al repetir código nos obliga a testear lo mismo varias veces, cuando modifiquemos algo, hay que hacerlo en todos esos lugares y amplían gravemente la cantidad de código a mantener.
6. Evitar comentarios en el código
Este principio se resume en que si hemos tenido que poner algún comentario, es síntoma de que no se ha escrito un código claro.
7. Utilizar un sólo formato en tu código
Usar un único formato, dará coherencia y estructura al código y unas pautas a seguir por todos los desarrolladores del equipo.
8. Abstrae los datos
Las clases están para encapsular nuestros datos para que puedan ser obtenidos y modificados posteriormente. No hay que crear getters y setters indiscriminadamente.
Hay que identificar si nuestra clase es una estructura de datos o un objeto con comportamiento.
9. Devolver excepciones en vez de códigos de error
Esto nos da la ventaja de que no tenemos que recordar que significa cada codigo de error y se separa la lógica de error y del camino exitoso.
10. Establece fronteras
Hay veces que no tenemos control sobre el código que se ejecuta porque viene de librerías de otras personas o frameworks. Teniendo las fronteras podemos sustituir el código externo sin problemas.
11. Escribe tests
Los test ayudan a definir y validar el funcionamiento del sistema que se está implementando. Si no se realizan pruebas habrá muchas posibilidades de que diversas casuísticas fallen, ya que no podemos comprobar a mano todos los casos de uso de un sistema.