Onde encontro bons exemplos para DDD? [fechadas]

390

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
jlembke
fonte
42
Os debates da IHMO ajudarão muito. Às vezes, mais do que uma simples pergunta. Por exemplo, poderíamos mudar isso em uma pergunta: "Onde encontro bons exemplos para DDD?" e funciona com o formato de perguntas e respostas.
Gizzmo 10/10
11
Eu achei o exemplo do "projeto de gerenciamento ágil" do livro de Vaughn Vernon muito instrutivo. ilustra a implementação prática dos blocos de construção que você enumera, além de lidar com diferentes contextos limitados, você pode encontrar o código aqui: github.com/VaughnVernon/IDDD_Samples
Mehdi.
11
Eu recomendaria este exemplo: github.com/vkhorikov/DddInAction
Vladimir
11
Você pode dar uma olhada aqui: dzone.com/storage/assets/…
Chaklader Asfak Arefe
Tenho um aqui: github.com/appie2go/steal-this-code
Clark Kent

Respostas:

199

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.

Michael Hart
fonte
2
Como mencionado @Mehdi no comentário da pergunta original, você deve adicionar o maravilhoso exemplo de Vaughn Vernon. É a melhor implementação do padrão DDD até agora que eu já vi: github.com/VaughnVernon/IDDD_Samples
Sylvain Lecoy
Eu sei que isso é antigo, mas o exemplo de dddpsparece 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.
David Anderson
Agora você deve adicionar o excelente exemplo de Vaugnh Vernon, o autor de Implementando o Design Orientado a Domínio (IDDD): github.com/VaughnVernon/IDDD_Samples
Sylvain Lecoy
23

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.

Todd Smith
fonte
links não funcionam
sidgate
11

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 .

user996985
fonte
O código-fonte não está mais disponível :(
Dherik 2/18/18
7

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

Thurein
fonte
11
Não posso votar nisso, mas vá ao blog de Ayende para ver por que ele acha que esse não é um bom exemplo. ayende.com/blog/19457/…
Chris
11
o link que você fornece não funciona, erro de mensagem: 'Projeto' microsoftnlayerapp 'não foi encontrado'
Omar AMEZOUG