Architectural Patterns.
Patterns and methodologies that shape whole systems — how to model a domain, separate reads from writes, and let tests or specifications drive the design.
Un enfoque de desarrollo de software que centra el diseño en un modelo rico del dominio de negocio, expresado en un lenguaje compartido por ingenieros y expertos del dominio.
Separa el modelo que cambia el estado (comandos) del modelo que lee el estado (consultas), de modo que cada lado pueda modelarse, escalarse y optimizarse de forma independiente.
Una disciplina de desarrollo en la que escribes una prueba que falla antes que el código que la hace pasar y, a continuación, refactorizas, dejando que las pruebas guíen el diseño en ciclos cortos y ajustados.
Escribe primero una especificación explícita y autoritativa y, a partir de ella, dirige la implementación, las pruebas y el código generado, manteniendo la especificación como única fuente de verdad.