DDD (Domain Driven Design) - eTecnologia/projeto-genesis GitHub Wiki
Introdução:
Os profissionais de desenvolvimento de softwares reconhecem que a modelagem de domínios é essencial para o design de softwares. Através de modelos de domínios é possível expressar funcionalidades e traduzi-las em uma implementação de software que realmente atenda às necessidades dos clientes e usuários.
Contudo, existem poucos recursos práticos que explicam como incorporar uma modelagem de domínios eficiente no processo de desenvolvimento de softwares. O DDD (Domain-Driven Design) atende essa necessidade.
O que é DDD?
“É um conjunto de princípios com foco em domínio, exploração de modelos de formas criativas e definir e falar a linguagem Ubíqua, baseado no contexto delimitado.”
O que é domínio?
Domínio é o coração do negócio. É baseado em um conjunto de ideias, conhecimento e processos de negócio. É a razão do negócio existir. Sem o domínio
todo o sistema, todos os processos auxiliares, não servirão para nada.
Se uma empresa existe, é porque ela tem um “core business” e, geralmente, esse ele é composto pelo domínio principal.
Conclusão: Sempre que se falamos em domínio, estaremos falando da razão daquele software existir.
A referência quando o assunto é DDD é o livro Eric Evans:
Resenha do Livro:
Este não é um livro sobre tecnologias específicas. Ele oferece aos leitores uma abordagem sistemática com relação ao domain-driven design, ou DDD, apresentando um conjunto abrangente de práticas ideais de design, técnicas baseadas em experiências e princípios fundamentais que facilitam o desenvolvimento de projetos de software que enfrentam domínios complexos. Reunindo práticas de design e implementação, este livro incorpora vários exemplos baseados em projetos que ilustram a aplicação do design dirigido por domínios no desenvolvimento de softwares na vida real.Com este livro em mãos, desenvolvedores orientados a objetos, analistas de sistema e designers terão a orientação de que precisam para organizar e concentrar seu trabalho, criar modelos de domínio valiosos e úteis, e transformar esses modelos em implementações de software duradouras e de alta qualidade.
Mais alguns livros interessantes sobre DDD:
Para ir além:
Vídeo:
Vídeo sobre DDD com Wesley Willians
Tutoriais:
Um bom post sobre DDD: O que é DDD?
DDD (Domain-Driven Design) com .NET
Este tutorial aborta dois temas importantes: DDD e Microserviços:
Projetar um microsserviço orientado a DDD
DDD não é arquitetura em camadas