Jueves, Octubre 8, 2020

  • Uff, estuvo buenazo el libro Advanced Web Application Architecture. Lo estoy leyendo de nuevo, tomando notas y modificando mi arquitectura.
  • A pesar de mis esfuerzos por conciliar Laravel y Domain-Driven Development, he aceptado que luchar contra el framework es una batalla donde salir victorioso implica perder todas las ventajas del framework. Adoptaré algunos conceptos de DDD (e.g. Value Objects) pero sin pelear con el framework (Value Objects en Eloquent es no no no).
  • Ya no estoy usando Form Requests, no me gusta estar dependiendo de un paquete externo para hacer testing. Estoy manejando la validación de los datos del Request en una clase aparte. Manejaré la autorización con Middlewares, eso es algo que aún no he implementado.
  • Luego de muchas indecisiones sobre el namespace para el «core» de mi aplicación, ayer definí de una buena vez por todas y de manera irrevocable cuál sería. Long story short, es Domain. Ya no habrá más cambios. He dicho.
  • Y a pesar que me gusta el Command Bus, para no desviarme mucho del «standard» de Laravel, estoy usando Services, aunque he adoptado el nombre de Actions como los tíos de Spatie, siendo la razón de peso el diferenciarlos de los Domain Services.

Libro 13 del 2020: Advanced Web Application Architecture por Matthias Noback

Advanced Web Application Architecture es un excelente libro sobre arquitectura de aplicaciones web con PHP (aunque los principios pueden aplicarse en otros lenguajes).

Muchos libros o recursos sobre Domain-Driven Development o arquitectura de software explican conceptos aisladamente, y al ponerlos en práctica no queda claro cómo encaja todo. En este libro, Matthias Noback explica cómo todo funciona en conjunto usando ejemplos reales. Muchas preguntas que tenía encontraron respuesta y descubrí cosas que había entendido mal.

Cuando Matthias escribía sobre Excepciones, me preguntaba: «¿Las Excepciones no deberían ser para situaciones excepcionales?» Dos páginas más adelante, contestó exactamente esa pregunta. Es bien completo, bien escrito y bien organizado. Lo recomiendo bastante.