O que é Domain-Driven Design (DDD)?
Domain-Driven Design (DDD) é uma abordagem de design de software, criada por Eric Evans, que coloca o domínio do negócio no centro das decisões técnicas. Propõe que o código e o modelo reflitam profundamente a realidade do negócio, usando uma "linguagem ubíqua", vocabulário compartilhado entre especialistas de domínio e desenvolvedores, para evitar traduções que distorcem o entendimento. Conceitos centrais incluem os bounded contexts (fronteiras explícitas dentro das quais um modelo faz sentido), agregados, entidades e eventos de domínio. A premissa é que software complexo só fica sustentável quando a estrutura técnica espelha a estrutura do problema de negócio.
Na prática
Times usam DDD em domínios complexos para definir fronteiras de contexto (e, muitas vezes, de microsserviços), modelar com uma linguagem comum e isolar a lógica de negócio do detalhe técnico. Event Storming é uma das formas mais usadas de iniciar esse trabalho.
O que acontece quando falta
O modelo de código diverge do modelo de negócio. Termos significam coisas diferentes em partes diferentes do sistema, as fronteiras ficam confusas, e cada mudança de regra de negócio exige tocar em pontos espalhados e acoplados.
Termos relacionados
Perguntas frequentes
O que é Domain-Driven Design (DDD)?
Domain-Driven Design (DDD) é uma abordagem de design de software, criada por Eric Evans, que coloca o domínio do negócio no centro das decisões técnicas.
Como Domain-Driven Design (DDD) funciona na prática?
Times usam DDD em domínios complexos para definir fronteiras de contexto (e, muitas vezes, de microsserviços), modelar com uma linguagem comum e isolar a lógica de negócio do detalhe técnico.
O que acontece quando Domain-Driven Design (DDD) falta?
O modelo de código diverge do modelo de negócio.