O documento apresenta os conceitos e estratégias do Domain-Driven Design (DDD), incluindo a importância da modelagem de domínio colaborativa focada no negócio, os desafios de desenvolver softwares complexos e como o DDD ajuda a gerenciar a complexidade através de modelos compartilhados.
6. QUEM SOU EU
ARQUITETO DE SOFTWARE
BACHARELEM ANAL. DE SISTEMAS
MESTRANDO EM ENG. DE SOFTWARE PELA UFRN
MSP | MCP | MCTS
ACADEMIA .NET PARAZUMBIS
ASP.NETCAST
PALESTRANDO EM EVENTOS NACIONAIS
[twitter, facebook]/yanjustino
yanlimaj@[gmail.com, outllok.com]
FORMAÇÃO
ONDE ME ENCONTRAR
11. O QUE É DOMÍNIO?
• A Domain, in the broad sense, is what an organizationdoes and the world it does it
in. (VaughnVernon).
• É uma abstração rigorosamente organizada e seletiva daquele conhecimento (Eric
Evans, 2003) – SERA?
• Domínios são nichos de sentidos nos quais experiências ficam estocadas. (Duque e
Costa, 2012)
12. O QUE É DESIGN?
All architecture is design but not all design is architecture. Excerpt
From:Simon Brown. “SoftwareArchitecture for Developers.”
13. DOMAIN-DRIVEN DESIGN
Uma ESTRATÉGIA APLICÁVEL ao desenvolvimento de
software guiada pela construção de modelos cuja principal
finalidade é atacar o volume e a complexidade de informações.
14. A modelagem de domínio não é uma
questão de se criar um modelo o mais realista
possível. Mesmo em um domínio de coisas
tangíveis da vida real, nosso modelo é uma
criação artificial.
15. O QUE NÃO É DOMAIN-DRIVEN DESIGN
• NÃO É UM PADRÃO DE LINGUAGEM
• NÃO É UM FRAMEWORK
• NÃO É APENAS SOBRE CÓDIGO
• NÃO É UMA METODOLOGIA
16. Se assemelha ao processo de criação de um
filme, representandolivremente a realidade
com uma determinada finalidade.
18. FOCO NA COLABORAÇÃO
Sem colaboração e compromisso com os especialistas de negócio,
o conhecimento não será capaz de tomar lugar e desenvolviment de
equipes não obterão maisprofundos insights sobre o domínio do proble
ma
Trecho de: Scott Millett. IBooks "Princípios, padrões e práticas de Do
main-Driven Design.".
20. Para criar um design flexivel e rico em
conhecimento é necessário ter uma linguagem
versátil compartilhada
21.
22. FOCO NA ORGANIZAÇÃO
Habilita a destilação dos domínios de grandes problemas para
melhor gerir a comunicação e isolar os modelos que têm ambigüidade
dentro de uma linguagem compartilhada
Trecho de: Scott Millett. IBooks "Princípios, padrões e práticas de Do
main-Driven Design.”
23.
24. DDD é sobre a
Redução de complexidade
No software
Eric Evans
Arquitetura é sobre
intenção
Robert C. Martin
29. CÓDIGO SEM LINGUAGEMCOMUM
A lack of focus on a shared language and knowledge of the
problem domain results in a code base that works but does not
reveal the intent of the business
Excerpt From: Scott Millett. “Principles,Patterns and
Practicesof Domain-DrivenDesign.” iBooks.
30.
31. FALTA DE FOCO NO NEGÓCIO
A lack of focus on a shared language and knowledge of the
problem domain results in a code base that works but does not
reveal the intent of the business
Excerpt From: Scott Millett. “Principles,Patterns and
Practicesof Domain-DrivenDesign.” iBooks.
33. COMO DDD GERENCIA COMPLEXIDADES?
üDESTILANDOOPROBLEMA DE DOMÍNIOPARA REVELAR OQUE
REALMENTE IMPORTA
üCRIANDO MODELOPARA RESOLVER PROBLEMAS DE DOMÍNIO
üUSANDOUMA LINGUAGEMCOMPARTILHADAPARA HABILITAR
MODELAGEM COLABORATIVA
üISOLANDOMODELOS DE AMBIGUIDADE E CORRUPÇÃO
üENTENDENDO A RELAÇÃOENTRE CONTEXTOS
34.
35. "Modelos menores proporcionam muitos benefícios, permitindo definir limites claros
relativos às responsabilidades de concepção e desenvolvimento de equipes.
[Quando] um contexto tem uma superfície menor, você tem menos efeitos colaterais"
Julie Lerman is a Microsoft MVP, .NET mentor and consultant who lives in
the hills of Vermont. You can find her presenting on data access and
other.NET topics at user groups and conferences around the world. She blogs
at thedatafarm.com/blog and is the author of “Programming Entity
Framework” (2010), as well as a Code First edition (2011) and a DbContext
edition (2012), all from O’Reilly Media. Follow her on Twitter
attwitter.com/julielerman and see her Pluralsight courses at juliel.me/PS-
Videos.
37. “Figure 1-3: ApplyingThe StrategicPatterns Of Domain-Driven Design”Excerpt
From: Scott Millett. “Principles, Patterns and Practices of Domain-Driven
Design.” iBooks.
43. “The distillation of knowledge after sessions with domain experts
should reveal what’s unique and important about the application you
are about to create. You can separate the subdomains into core,
generic, and supporting domains, as shown ”Excerpt From: Scott
Millett. “Principles, Patterns and Practices of Domain-Driven
Design.” iBooks.
58. CAMADA DE DOMÍNIO
“The Domain LayerThe domain layer, at the
heart of your application, is the area of code that
contains your domain model.”Excerpt From: Scott
Millett. “Principles, Patterns and Practices of
Domain-Driven Design.” iBooks.