Clean Code
11.07.2011Clean Code: A Handbook of Agile Software Craftsmanship es un libro que todo desarrollador debería leer al menos una vez en su vida.
Cuando se estudia programación, el centro del aprendizaje suele ser el propio lenguaje o la parte algorítmica, sin embargo otro de los aspectos más importantes de la programación es que el código sea simple, expresivo, fácil de mantener y que por supuesto, haga exactamente lo que queremos.
Contenido
El libro utiliza una gran cantidad de ejemplos y muestra muchísimo código. Algunos capítulos que me gustaría destacar son los siguientes:
Meaningful Names
El primer paso para escribir buen código es que los nombres tengan significado. Las variables, métodos y clases deben tener un buen nombre para saber por qué existen y qué hacen.
Functions
Las funciones tienen que ser pequeñas, deben hacer una única cosa y la deben hacer bien, manteniendo un sólo nivel de abstracción. También hay que intentar reducir el número de argumentos al mínimo.
Comments
No comentes mal código, reescríbelo.
Formatting
El formateo del código tiene un único propósito: la legibilidad. Aquí se describe The newspapper methapor, al leer código las primeras funciones que encontremos tienen que ser las principales y si lo deseamos podemos entrar en detalle más abajo.
Objects And Data Structures
Los objetos ocultan sus datos y exponen funciones para operar con ellos, mientras que las estructuras de datos los exponen directamente.
Error Handling
Hay que intentar separar la lógica de nuestra aplicación del control de excepciones, así como no devolver ni pasar valores nulos en las funciones.
Unit Test
Una parte muy importante al construir aplicaciones son las pruebas y los test. Lo ideal es hacer TDD y crear un código en los test que sea igual de bueno que el del resto de la aplicación.
Classes
Las clases también tienen que ser pequeñas para intentar tener una alta cohesión.
Emergence
Para crear un buen diseño emergente hay que ejecutar todos los test, eliminar la duplicación de código, expresar la intención al programar y minimizar el número de clases y de métodos.
Presentación
Al finalizar el libro decidí realizar una presentación para compartir lo aprendido con mis compañeros de trabajo y también hice la presentación en el grupo de Madrid Ágil. Que la disfruten…