23

Domain Driven Design (DDD)

Embed Size (px)

Citation preview

Page 1: Domain Driven Design (DDD)
Page 2: Domain Driven Design (DDD)

Mauro Sérgio da Costa Leal

Page 3: Domain Driven Design (DDD)

Mauro Sérgio da Costa Leal

• Bacharel em Ciência da Computação• Arquiteto de software• Desenvolvedor web na plataforma .NET• Entusiasta de DDD, padrões de projeto e boas

práticas de programação

Page 4: Domain Driven Design (DDD)

Agenda

Quando deve ser utilizado

Arquitetura em camadas

Camada de domínio

O que é DDD

Page 5: Domain Driven Design (DDD)

O que é domínio?

Page 6: Domain Driven Design (DDD)

Múltiplos dialetos

Page 7: Domain Driven Design (DDD)
Page 8: Domain Driven Design (DDD)

Modelo orientado a objetos x Modelo anêmico

Refatoração x Contornos

Camada de Regras de Negócio x Interfaces inteligentes

Separação de responsabilidades x Alto acoplamento

Confrontos

Page 9: Domain Driven Design (DDD)

Arquitetura em camadas

Page 10: Domain Driven Design (DDD)

Domínio – Entidades e Objetos de Valor

Conta Saque

Cédula

Page 11: Domain Driven Design (DDD)

Domínio - Agregados

ClientePedido

Itens Produto

Page 12: Domain Driven Design (DDD)

Domínio - Fábricas

Page 13: Domain Driven Design (DDD)

Domínio - Serviços

Page 14: Domain Driven Design (DDD)
Page 15: Domain Driven Design (DDD)

Mapa de Navegação

Page 16: Domain Driven Design (DDD)

Quando não utilizar DDD

Aplicações CRUD

Aplicações com poucos casos de uso

Aplicações com ciclo de vida pequeno

Page 17: Domain Driven Design (DDD)

Quando utilizar DDD

Aplicações com muitas regras de negócio

Não conseguimos prever a complexidade

Longo ciclo de vida

Domínio desconhecido por todo o time

Page 18: Domain Driven Design (DDD)

Por que utilizar DDD?

Consenso entre os especialistas do domínio

Melhor experiência do usuário

Modelagem ágil, iterativa e contínua

Software para todos entenderem

Page 19: Domain Driven Design (DDD)

Referências

Page 20: Domain Driven Design (DDD)

Referências

Page 21: Domain Driven Design (DDD)

Referências

Page 22: Domain Driven Design (DDD)
Page 23: Domain Driven Design (DDD)

Muito Obrigado!

Mauro Sérgio da Costa [email protected]