Patrones arquitectónicos.
Patrones y metodologías para diseñar sistemas completos: modelar un dominio, separar las lecturas de las escrituras y guiar el diseño mediante pruebas o especificaciones.
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.