Estou aprendendo sobre Design Orientado a Domínio, no entanto, existem alguns problemas práticos que são confusos para mim e que acho que ver algumas boas amostras pode esclarecer.
Alguém conhece algumas boas amostras de código de trabalho que fazem um bom trabalho de modelagem de conceitos básicos de DDD?
Particularmente interessado em
- Um modelo de domínio ilustrativo
- Repositórios
- Uso de Serviços de Domínio / Aplicativos
- Objetos de valor
- Raízes agregadas
domain-driven-design
jlembke
fonte
fonte
Respostas:
A dificuldade com amostras de DDD é que elas geralmente são muito específicas do domínio e a implementação técnica do sistema resultante nem sempre mostra as decisões e transições de design que foram feitas na modelagem do domínio, que é realmente o cerne do DDD. DDD é muito mais sobre o processo do que sobre o código. (como alguns dizem, a melhor amostra de DDD é o próprio livro!)
Dito isso, um exemplo de aplicativo bem comentado deve revelar pelo menos algumas dessas decisões e fornecer algumas orientações em termos de correspondência do modelo de domínio com os padrões técnicos usados para implementá-lo.
Você não especificou qual idioma está usando, mas darei alguns em alguns idiomas diferentes:
DDDSample - uma amostra de Java que reflete os exemplos de Eric Evans mencionados em seu livro . Isso é bem comentado e mostra vários métodos diferentes de solução de vários problemas com contextos limitados separados (por exemplo, a camada de apresentação). Ele está sendo trabalhado ativamente, portanto verifique-o regularmente para atualizações.
dddps - Exemplo de aplicativo C # de Tim McCarthy para seu livro, Design Orientado a Domínio .NET com C #
S # arp Architecture - um exemplo pragmático do C #, não como uma abordagem DDD "pura", talvez devido à falta de um problema de domínio real, mas ainda assim uma abordagem limpa e agradável.
Com todos esses aplicativos de amostra, é provavelmente melhor verificar as versões mais recentes do SVN / o que quer que seja para realmente ter uma idéia dos padrões de pensamento e tecnologia, pois eles devem ser atualizados regularmente.
fonte
dddps
parece ser totalmente anêmico e contrário ao OOP, na verdade. Nenhum dos objetos de domínio tem comportamento e as classes da camada de serviço são basicamente uma delegação 1: 1 para os repositórios. Não tenho certeza se isso deve ser considerado um "bom" exemplo de DDD? Ainda estou aprendendo a mim mesmo, mas os exemplos no S # arp Architecture parecem ser um exemplo melhor para quem está aprendendo DDD, pois abrange o estado e o comportamento, o que é um bom design de OOP.Não sou fonte de projetos, por exemplo, mas me deparei com o Parleys.com, que tem alguns bons vídeos que cobrem DDD muito bem (requer flash):
Achei isso muito mais útil do que os exemplos quase inexistentes de DDD atualmente disponíveis.
fonte
Exemplo de DDD .NET do livro de design orientado a domínio de Eric Evans pode ser encontrado aqui: http://dddsamplenet.codeplex.com
Felicidades,
Jakub G
fonte
Confira o Projeto Silk . Não apenas demonstra DDD, mas outros padrões de ponta. Este é um excelente recurso para qualquer desenvolvedor da Web. Uma visão geral completa do projeto pode ser encontrada no MSDN .
fonte
Este é um bom exemplo baseado no design controlado por domínio e explica por que é importante ter uma camada de domínio separada.
Microsoft espanha - DDD N Layer Architecture
fonte
ddd-cqrs-sample também é um bom recurso. Escrito com Java, Spring e JPA.
Link atualizado: https://github.com/BottegaIT/ddd-leaven-v2
fonte
Code Camp Server , o código de exemplo de Jeffrey Palermo para o livro ASP.NET MVC in Action . Enquanto o livro está focado na camada de apresentação, o aplicativo é modelado usando DDD.
fonte