Pues aquí estaba yo liado con una aplicación (proyecto personal) con Symfony 8 y me llega un correo de Leanpub con el mensaje:
We’re excited to announce that the Second Edition of Domain-Driven Design in PHP is now available — and as an existing reader, you get it as a free update.
Es curioso como a veces algunas cosas tienden a coincidir. Llevo unos días de vuelta a Symfony, poniéndome al día de las novedades de la versión 8, revisando también temas de testing en general, arquitectura… actualizando algunos proyectos personales para ir rodando todos estos temas y justo se publica una nueva versión del Domain-Driven Design in PHP de: Carlos Buenosvinos, Christian Soronellas y Keyvan Akbary.
Me hice con la primera edición de este libro justo a los pocos meses de su publicación, admito que esa primera edición no llegué a terminarla porque en esa época mis intereses (y por lo tanto el tiempo disponible para dedicarle) se fueron por otro lado, luego empecé a trabajar mucho con Moodle/Totara (que de DDD nada), meterme en temas de infraestructura y ya no volví a él.
Pero mi recuerdo de los primeros capítulos que leí en ese momento ya era de uno de esos libros que da gusto leer no solo por lo que trata sino sobre todo por el nivel técnico y de conocimiento que transmite.
Domain-Driven Design resulta especialmente interesante en escenarios donde la lógica de negocio tiende a ser compleja. No es para un CRUD simple, ahí creo que sería over-engineering. Pero cuando el sistema tiene reglas de negocio ricas, crece con el tiempo o se trabaja con equipos donde negocio y desarrollo necesitan hablar el mismo idioma, DDD aporta una estructura que hace que el código refleje el problema real.
Lo interesante es que PHP moderno facilita mucho más su implementación que cuando salió la primera edición. Los readonly properties, los enums, el constructor property promotion y los tipos estrictos hacen que modelar Value Objects y Entidades sea limpio y expresivo, sin librerías extra, sin magia. El lenguaje ya te acompaña.
Es exactamente lo que mencionan los autores en el prólogo de esta segunda edición, y para mí una de las razones por las que leer ahora este libro tiene más sentido que nunca.
Promete ser una lectura interesante para mis próximos días.
Domain-Driven Design in PHP – 2n Edition
Discover DDD, Architectural Styles, Tactical Design Implementations, and Bounded Context Integration with PHP 8.5 examples
De:
Carlos Buenosvinos
Christian Soronellas
Keyvan Akbary
En Leanpub: https://leanpub.com/ddd-in-php