Descripción general
El libro constituye una guía profunda y sistemática para construir una arquitectura mantenible, escalable y testeable de aplicaciones PHP utilizando Laravel como ejemplo. El autor comienza analizando los errores arquitectónicos y de diseño típicos que surgen con mayor frecuencia en proyectos reales: violaciones del principio de responsabilidad única, uso excesivo del pensamiento CRUD, abuso de la «magia» del framework y la búsqueda de un desarrollo pseudorrápido en detrimento de la calidad del código.
A continuación, el libro sumerge progresivamente al lector en los fundamentos de una correcta arquitectura orientada a objetos: inyección de dependencias, uso significativo de herencia, interfaces, traits y la renuncia a los métodos estáticos allí donde dificultan la extensibilidad y las pruebas. Se presta gran atención a ejemplos prácticos y a la refactorización de código existente, así como a las herramientas que facilitan la labor del desarrollador.
Una parte significativa del libro está dedicada a la capa de aplicación, el manejo de errores, la validación de datos y la construcción de un sistema robusto de excepciones. El autor delimita claramente las responsabilidades entre las capas, mostrando cómo evitar que la lógica se disperse por los controladores y modelos. Se examinan por separado eventos, colas, transacciones y su papel en la construcción de procesos de negocio fiables.
En la segunda mitad del libro, la atención se desplaza hacia enfoques arquitectónicos más complejos: pruebas unitarias, capa de dominio, CQRS y Event Sourcing. Estos capítulos ofrecen una visión integral de cómo diseñar sistemas complejos donde la lógica de negocio se convierte en el elemento central y la infraestructura en algo secundario. El libro no es una introducción sencilla y presupone experiencia en desarrollo comercial, pero al mismo tiempo proporciona una imagen completa del pensamiento arquitectónico moderno en el ecosistema PHP.
Opinión
Un libro ambiguo que ha suscitado sentimientos encontrados. Por un lado, la POO que propone el autor en este libro resulta elegante, fácilmente escalable y bien testeable. Por otro lado, tras leer libros como este, dan ganas de dejar por completo de programar en POO y pasarse íntegramente a la programación funcional.