Domain Driven Design

2.113 visualizações

Publicada em

Workshop sobre Domain Driven Design realizado no Agence Tech Thursday de 01/04/2010.

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.113
No SlideShare
0
A partir de incorporações
0
Número de incorporações
17
Ações
Compartilhamentos
0
Downloads
77
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide




























  • Domain Driven Design

    1. 1. Domain Driven Design Saulo Arruda
    2. 2. O que é modelar?
    3. 3. http://www.flickr.com/photos/13948040@N07/1419827539/
    4. 4. http://www.flickr.com/photos/library_of_congress/2179863282/sizes/o/
    5. 5. http://www.flickr.com/photos/59274688@N00/161996627/
    6. 6. http://www.flickr.com/photos/nitrum/4425749511/
    7. 7. mo.de.lo Desenho ou imagem que representa o que se pretende reproduzir, desenhando, pintando ou esculpindo. http://michaelis.uol.com.br/moderno/portugues/index.php?lingua=portugues-portugues&palavra=modelo
    8. 8. Linguagem obtusa • Programadores: Thread, SQL, Array, Hibernate, Java, ActiveRecord, String • Cliente: Fluxo de Caixa, Balancete, Plano de Vôo, Produto,Venda, Cliente Criar uma linguagem comum: a linguagem do domínio do negócio
    9. 9. Modelo de domínio • O modelo e o coração do design dão forma um ao outro; • O modelo é a espinha dorsal de uma linguagem utilizada por todos os membros da equipe; • O modelo é um conhecimento destilado;
    10. 10. Isolando o domínio
    11. 11. Entity • Objetos com identidade; • Bons começos para a modelagem; • A maioria dos objetos do domínio serão entities; • São mutáveis;
    12. 12. Value Objects • Não possuem identidade; • Seus atributos o definem; • Descrevem certos aspectos do domínio; • É recomendável que sejam imutáveis e por isso podem ser compartilhados;
    13. 13. Pessoa Pessoa == ? nome: José da Silva nome: José da Silva Valor Valor moeda: Real == moeda: Real ? montante: 50 montante: 50
    14. 14. Pessoa Pessoa == ? nome: José da Silva nome: José da Silva Entity! Valor Valor moeda: Real == moeda: Real ? montante: 50 montante: 50
    15. 15. Pessoa Pessoa == ? nome: José da Silva nome: José da Silva Entity! Valor Valor moeda: Real == moeda: Real ? montante: 50 montante: 50 Value Object!
    16. 16. Service • Representam comportamentos que não se encaixam em entities ou value objects; • Objetos sem estado; • Suas operações interagem com outros objetos do domínio;
    17. 17. Module • Sistemas crescem e se torna complexo um entendimento do todo; • Módulos agrupam conceitos relacionados; • Módulos podem se relacionar entre si;
    18. 18. Aggregate • Usado para refinar as responsabilidades e fronteiras dos objetos; • É um grupo de objetos associados que podem ser considerados como uma unidade com relação aos dados; • Um agragate tem apenas uma entidade root;
    19. 19. Telefones salvar() clienteController Cliente salvar() Endereços salvar()
    20. 20. Cliente adicionarEndereco() clienteController adicionarTelefone() salvar() Endereços Telefones salvar() salvar()
    21. 21. Factory • Objetos complexos ou trabalhosos para serem construídos; • A construção exige alto conhecimento sobre a estrutura interna; • Factories encapsulam as regras para construção de um objeto;
    22. 22. Repository • Encapsula a lógica para obter os objetos de um sistema de persistência; • Tem acesso à infra-estrutura de persistência;
    23. 23. Discussão
    24. 24. Referências • InfoQ, Domain Driven Design Quickly • Eric Evans, Domain Driven Design – Atacando as Complexidades no Coração do Software

    ×