Introducción

Bob es un especialista de clase alta que es fuerte no solo en teoría, sino que también practica con éxito el desarrollo. En su libro, explica de manera sencilla cómo escribir código seguro y reutilizable en un mundo en el que el cliente cambia los requisitos sobre la marcha.

Desarrollo ágil

En los primeros capítulos, el autor explica brevemente qué son el desarrollo ágil y la programación extrema. Bob analiza cómo nos beneficiaremos de la introducción del desarrollo ágil y por dónde empezar. A continuación, le dice cómo planificar adecuadamente, hacer frente a las tareas con las que tiene que lidiar casi todos los días durante el proceso de desarrollo. Se describe el proceso en sí y el resultado que deberíamos obtener.

TDD

Cuanto más fáciles se hacen las pruebas, antes se ven las desviaciones. Cuanto más a menudo se realicen las pruebas, mayor será la probabilidad de obtener un producto funcional en cualquier etapa de desarrollo.

La siguiente parte importante son las pruebas. Bob nos presenta TDD porque el desarrollo basado en pruebas ofrece importantes beneficios. Al desarrollar pruebas, la mayoría de los desarrolladores piensan en la arquitectura como un todo. TDD le permite ahorrar en el trabajo del probador y producir construcciones más limpias, lo que reduce significativamente el paso de pulido.

Cualquier equipo tiene un desarrollador que ha leído sobre el desarrollo impulsado por pruebas y quiere implementarlo en su proyecto. No me esconderé, yo mismo fui así, pero, lamentablemente, trabajar en proyectos comerciales no siempre te permite hacer esto. No es ningún secreto que la mayoría de los clientes no están dispuestos a pagar por separado las pruebas de redacción. Además, no siempre es racional dedicar tiempo a redactar pruebas cuando te traen un pedido que debería hacerse "ayer".

Refactorización

Refactorizar es como limpiar la mesa después del almuerzo. La primera vez que decide no limpiar, el almuerzo termina más rápido. Pero la falta de platos limpios y un lugar para trabajar hará que al día siguiente se tarde más en cocinar. Entonces no querrás volver a limpiar.

En este capítulo, nos presenta el procedimiento de refactorización. Después, como después del trabajo de un administrador de limpieza de alta calidad, el código se vuelve mucho más rápido, más limpio y más agradable. La refactorización debe realizarse después de que se complete la tarea. Robert Martin aconseja volver a salir a correr: pídale a un colega que le dé una nueva mirada. Esto hará que el código sea más limpio cada vez. Apoyo plenamente este enfoque. El valor de este capítulo es que el viejo Martin muestra con ejemplos prácticos cómo llevar a cabo este procedimiento.

Episodio

El episodio es uno de los capítulos más interesantes. Aquí se nos muestra un juego de bolos en la práctica. Vemos una comunicación en vivo entre los dos especialistas. Los diálogos son lo más cercanos posible a un escenario de combate, cuando las ediciones provienen del cliente en un flujo interminable, y el programador necesita adaptar su creación a los requisitos cambiantes. El capítulo en sí es único, y es difícil encontrar secciones similares en los libros de programación típicos, donde se nos da una teoría básica sin práctica.

Diseño flexible

La siguiente parte nos da una introducción al desarrollo de software orientado a objetos. El autor explica brevemente qué es, enseña técnicas de optimización y gestión de la complejidad.

El valor radica en el hecho de que explica los significados de abreviaturas como SRP, OCP, LSP, DIP, ISP en un lenguaje accesible que es comprensible incluso para un estudiante de primer año. Recomiendo encarecidamente la lectura para aquellos que no pueden recordar al menos dos significados.

Siguen los diagramas. Todos odiamos dibujarlos, pero la etapa de diseño evita el trabajo innecesario en el futuro, por lo que todos los desarrolladores deberían poder dibujar diagramas UML.

Patrones

¡Donde sin patrones! Cualquier libro de programación serio debería incluir una oda a los patrones de amor y ejemplos de uso. Los patrones son lo que usamos todos los días y debemos poder ponerlos en práctica. A pesar de esto, hablando del trabajo de un programador, cada vez escucho más a menudo la frase de desarrolladores de diferentes niveles: “No conozco patrones y me llevo muy bien”.

Es necesario conocer patrones, aceleran significativamente el desarrollo. Todo nuestro trabajo consta de una variedad de patrones. Las cosas verdaderamente únicas son raras, y cuando se enfrenta a algo verdaderamente único, vale la pena escribir una plantilla que el próximo miembro del equipo de desarrollo pueda usar en el futuro.

Recomiendo el libro en primer lugar a aquellos programadores que están en camino de convertirse. Los colegas superiores también deben leerlo para completar los espacios en blanco.