Book review: Clean Code

Clean CodeClean code
A handbook of Agile Software Craftsmanship
Robert C. Martin
Prentice Hall, 2009
http://www.amazon.es/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882

Esta obra es tremendamente conocida y es muy difícil encontrar una lista de libros recomendados que no la mencione. Esencialmente consiste en un conjunto de recomendaciones y técnicas de programación con el único propósito de hacer el código fuente más legible, profesional y de más calidad.
El libro revisa aspectos de naming, características de funciones, el uso de comentarios, el formateo de código, el tratamiento de errores, etc. Son los capítulos más fáciles de leer y entender. Los dedicados a conceptos más abstractos (Sistema, Diseño emergente) son más tediosos. Otros tres capítulos son eminentemente prácticos, centrados en ejemplos de refactorización y mejora de código. Dos capítulos versan sobre concurrencia (uno de ellos, el que aparece como apéndice, no lo leí y creo que están un poco fuera de lugar). Un último capítulo enumera distintos bad smells. Conforme avanza el libro se torna tedioso (será por unos dibujos horrorosos, que abundan en las primeras páginas y desaparecen casi en la segunda mitad :)). Seguir los ejemplos prácticos de cientos de líneas de código impreso tampoco es agradable. E incluso los últimos bad smells mencionados apenas incluyen un párrafo de comentario, como si el autor tuviese ganas de acabar.
A pesar de ello, es recomendable. Apenas cuesta 30 € y está lleno de buenas ideas. Aunque algunas ya las conozcas, otras probablemente no. Y no estarás de acuerdo con todas, por lo menos te hará reflexionar. Muchas de las indicaciones señaladas son de sentido común; a otras se llega con algo de experiencia programando (sobre todo manteniendo código ajeno). Sin embargo creo que es fácil encontrar con código que no sigue no ya reglas similares a las mencionadas en este libro, sino siquiera unas normas. Ver código ilegible y a continuación, tras una pertinente refactorización, el mismo pero pulido hasta hacerlo legible es un aliciente para dedicarle tiempo a la calidad del código que escribimos los programadores.

Una de las críticas posibles que puede hacerse a este libro (y me temo que a otros similares) es su dogmatismo. Algunas recomendaciones pueden parecer draconianas; tampoco es cierto que afirme que los métodos deben tener tres líneas, como se comenta en alguna página (realmente aconseja no pasar de 20) pero si recomienda, por ejemplo, que ningún método debiera tener mas de tres parámetros. Creo que toda regla puede tener su excepción y que las normas, una vez entendido su propósito y motivo, pueden romperse siempre que seamos conscientes de las posibles consecuencias. Nótese que el código que muestra como ejemplo en capítulo 16 no cumple a rajatabla muchos de los puntos de los que habla en el libro, y sin embargo afirma que es bastante buen código.

[En Amazon indican que la version Kindle está pobremente adaptada. En este caso concreto no recomiendo ninguna versión electrónica: las referencias a otras partes del libro son constantes y más llevaderas en formato papel.]

Anuncios
Tagged with: , , ,
Publicado en Libros

Deixa a túa opinión

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: