é um tipo de arquitetura de software - DDD é uma forma de organizar pastas e arquivos - Aplicações que aplicam DDD tem arquivos demais - Para usar DDD tem que usar um monte de design patterns - DDD torna o código difícil de entender - Nunca precisei usar DDD pro meu software funcionar - …
Aviação - Mineração - Transporte - … Problema Sistema de abstrações que descrevem aspectos específicos do domínio, usado para resolver problemas relacionados ao domínio Modelo
modelos, delimitando mecanismos de compartilhamento, isolamento e influência entre eles - Descoberta das relações entre os contextos que impõe restrições na natureza do modelo ou no ritmo viável para mudanças - Contextos que se dependem mutuamente - Contextos que suportam múltiplos outros contextos - Contextos que dependem unilateralmente de outros - Contextos que nunca precisam interagir entre si - Muitas vezes a natureza dessa relação pode ser inclusive não-técnica - Ex.: serviço terceirizado de processamento de pagamentos
0 blue: 255 Rosa red: 110 green: 200 blue: 80 Verde Ausência de identidade + significado proveniente dos valores dos atributos = Objeto de valor (value object)
mediaPlayer Extras paymentMethod totalPrice Pagamento Entidade principal + fronteira de consistência conceitual = Agregado (aggregate) Raiz do agregado (aggregate root)
interesse do domínio Agregados que requerem acesso direto + conjunto de ações de persistência de interesse do domínio = Repositório (repository) persistir um pedido Pedido (agregado)
primariamente sobre código 2. Não busque atalhos, fuja do suposto "DDD lite" 3. Leia o minibook DDD Quickly <infoq.com/minibooks/domain-driven-design-quickly> 4. Assista a talk "7 Reasons Why DDD Projects Fail", Greg Young <vimeo.com/13824218> 5. Aprenda a base de maneira sólida, não faça isso com pressa - Domain-Driven Design, Eric Evans (the blue book) ou Learning Domain-Driven Design, Vlad Khononov 6. Pratique! 7. Aprofunde os conhecimentos - Implementing Domain-Driven Design, Vaughn Vernon (the red book) 8. Pratique, não busque atalhos, e fuja do suposto "DDD lite"!