Entendendo Domain-Driven Design

19,906 views
19,636 views

Published on

Published in: Technology
4 Comments
24 Likes
Statistics
Notes
No Downloads
Views
Total views
19,906
On SlideShare
0
From Embeds
0
Number of Embeds
442
Actions
Shares
0
Downloads
525
Comments
4
Likes
24
Embeds 0
No embeds

No notes for slide

Entendendo Domain-Driven Design

  1. 1. Entendendo Domain-Driven Design Rafael Ponte http://www.rponte.com.br rponte@gmail.com
  2. 2. Quem? ● Desenvolvedor ● Atualmente trabalha na IVIA ● Sócio fundador da Triadworks ● Entusiasta Java, JSF e DDD ● Coordenador do grupo JSF
  3. 3. Software design is art “Software design is an art, and like any art it cannot be taught and learned as a precise science, by means of theorems and formulas.” Floyd Marinescu
  4. 4. O que é Domain-Driven Design?
  5. 5. Domain-Driven Design não é uma tecnologia ou metodologia, mas sim uma abordagem de design de software disciplinada que reúne um conjunto de conceitos, técnicas e princípios com foco no domínio e na lógica do domínio para criar um domain model.
  6. 6. Domain-Driven Design não é uma tecnologia ou metodologia, mas sim uma abordagem de design de software disciplinada que reúne um conjunto de conceitos, técnicas e princípios com foco no domínio e na lógica do domínio para criar um domain model.
  7. 7. Domain-Driven Design não é uma tecnologia ou metodologia, mas sim uma abordagem de design de software disciplinada que reúne um conjunto de conceitos, técnicas e princípios com foco no domínio e na lógica do domínio para criar um domain model.
  8. 8. O modelo pode ser expresso de várias formas, como uma apresentação Domain-Driven Design não é uma em PowerPoint, diagramas tecnologia ourascunho de em UML, metodologia, mas sim papel, peças de Lego, ou uma abordagem de design de software mesmo o código da disciplinada que reúne um conjunto de aplicação.. conceitos, técnicas e princípios com foco no domínio e na lógica do domínio para criar um domain model.
  9. 9. Domain-Driven Design não é uma tecnologia ou metodologia, mas sim uma abordagem de design de software disciplinada que reúne um conjunto de conceitos, técnicas e princípios com foco no domínio e na lógica do domínio para criar um domain model.
  10. 10. Strategic ... Design ... Layered architecture Domain-Driven Design não é uma Ubiquitous Domain patterns tecnologia ou metodologia, mas sim Language uma abordagem de design de software disciplinada que reúne um conjunto de conceitos, técnicas e princípios com ... foco no domínio e na lógica do domínio para criar um domain model. Domain-Specific Supple Language (DSL) Design OO
  11. 11. Ubiquitous Language
  12. 12. Layered architecture
  13. 13. Layered architecture
  14. 14. Domain patterns
  15. 15. Entity
  16. 16. Value Object
  17. 17. Repository
  18. 18. Service
  19. 19. Modelando Objetos
  20. 20. Para implementar um Domain Model... ...fuja da arquitetura BOLOVO
  21. 21. BO Business Object LO Layer Object VO Value Object
  22. 22. Arquitetura Orientada a BOLOVO ContaAction ContaForm ContaVO ContaBO ContaDAO DB
  23. 23. Arquitetura Orientada a BOLOVO ContaAction ContaForm ContaVO ContaBO ContaDAO DB
  24. 24. ContaVO ContaBO
  25. 25. Quais as vantagens ao adotar DDD?
  26. 26. Podemos destacar... ● Quanto mais próximo você está do negócio menos sofre com mudanças ● O entendimento do desenvolvedor sobre o negócio, evitando assim erros e ajudando no negócio em si, questionando e sugerindo otimizações ● Código menos acoplado e mais coeso
  27. 27. Concluindo ● Procure utilizar DDD em aplicações com domínios complexos ● Ubiquitous Language e Domain Model são o cerne da DDD ● Não se apegue a rigidez conceitual, e claro, não lute contra os frameworks ● Leia, mas leia muito sobre o assunto
  28. 28. Referências ● Livro Domain-Driven Design, 2004 (Eric Evans) ● Domain-Driven Design: http://domaindrivendesign.org/ ● GUJ: http://www.guj.com.br/ ● Caelum: http://www.caelum.com.br ● Shoes' blog: http://blog.fragmental.com.br ● Fowler's patterns: http://martinfowler.com/eaaCatalog/ ● Domain-Driven Design Quickly: http://www.infoq.com/minibooks/domain-driven-design-quickly ● MundoJava Nº 17 e Nº 28: http://www.mundojava.com.br/
  29. 29. Obrigado! rponte@gmail.com http://www.rponte.com.br/

×