SlideShare uma empresa Scribd logo
Arquitetura e modelagem de Software orientada a domínio
Domain Driven Design
Lorival Smolski Chapuis
MCPD ASP.NET
http://blog.lorival.com / lorival@chapuis.com.br
Centro de Inovação Microsoft
SOCIESC 2010
Sociedade Educacional de Santa Catarina
“... 1 hora não dá pra nada. Você vai mostrar a
mecânica do DDD, e o pessoal vai sair achando que
DDD é entidades+repositórios... Já percebi que por
mais esforço que façamos, técnicos tendem a
simplificar o que viram, e sobra só isso na cabeça
deles ...”
Giovani Bassi
Arquiteto de Software, MVP
Considerações iniciais
2
• O que é Domain Driven Design
• Surgimento, objetivos e vantagens
• Essência do Domain Driven Design
• Modelando um domínio real
• Regras para modelagem
• Arquitetura em camadas
• Caixa de ferramentas Microsoft
• Apresentação de uma aplicação
• Considerações finais
Agenda
3
É uma abordagem de design de software
disciplinada que reúne um conjunto de
conceitos, técnicas e princípios para
construção de softwares baseados em um
modelo de domínio.
Domain Driven Design
4
É uma abordagem de design de software
Disciplinada que reúne um conjunto de
conceitos, técnicas e princípios para
construção de softwares baseados em um
modelo de domínio.
Domain Driven Design
5
É uma abordagem de design de software
Disciplinada que reúne um conjunto de
conceitos, técnicas e princípios para
construção de softwares baseados em um
modelo de domínio.
Domain Driven Design
6
É todo e qualquer conhecimento (esfera
de conhecimento) utilizado em uma
determinada área.
Um domínio possuí regras de negócio.
É uma abordagem de design de software
Disciplinada que reúne um conjunto de
conceitos, técnicas e princípios para
construção de softwares baseados em um
modelo de domínio.
Domain Driven Design
7
É uma abordagem de design de software
Disciplinada que reúne um conjunto de
conceitos, técnicas e princípios para
construção de softwares baseados em um
modelo de domínio.
Domain Driven Design
8
Pode ser expresso de várias formas:
apresentação de slides, UML, rascunhos
em papel, organograma, etc...
É uma abordagem de design de software
Disciplinada que reúne um conjunto de
conceitos, técnicas e princípios para
construção de softwares baseados em um
modelo de domínio.
Domain Driven Design
9
É uma abordagem de design de software
Disciplinada que reúne um conjunto de
conceitos, técnicas e princípios para
construção de softwares baseados em um
modelo de domínio.
Domain Driven Design
10
Object Oriented
programming
Ubiquitous
Language
Domain
patterns
Layered
architecture
Design patterns
...
...
Surgimento
11
Há 20 anos criam-se padrões
e técnicas para arquitetura e
modelagem de software
Orientada a Objetos.
Há 6 anos Eric Evans
compilou várias destas
técnicas e unindo com suas
experiências criou o DDD
Há 20 anos criam-se padrões
e técnicas para arquitetura e
modelagem de software
Orientada a Objetos.
Há 6 anos Eric Evans
compilou várias destas
técnicas e unindo com suas
experiências criou o DDD
Surgimento
12
Design de
domínio
Pouco foi escrito
sobre isso
Não se tinha
claro como
deveria ser feito
Há 20 anos criam-se padrões
e técnicas para arquitetura e
modelagem de software
Orientada a Objetos.
Há 6 anos Eric Evans
compilou várias destas
técnicas e unindo com suas
experiências criou o DDD
Surgimento
13
Padrões de
arquitetura
Mais de 10 anos
como arquiteto
de software
Boas práticas
Padrões de
desenvolvimento
Grandes e
pequenos
projetos
1. Aproximar desenvolvimento
de software do domínio do
problema.
2. Aumentar a vida de um
software.
3. Ter códigos mais claros e
fáceis de entender.
4. Utilizar o principal recurso da
orientação a objetos: a
aproximação do mundo real
através de abstrações.
Objetivos
14
Vantagens
15
1. Fácil comunicação entre
desenvolvedores, analistas e
clientes.
2. Construir software testáveis.
3. Fácil manutenção e
crescimento do software.
4. Agregar ou trocar
colaboradores na equipe de
desenvolvimento não é mais
um problema.
5. Entenda o cliente, o modelo e
o código.
• Para a maioria dos projetos de software o foco
principal deve ser no domínio
• O modelo deve ser baseado em um domínio
• Você conhece software, o BusinessExpert conhece
o domínio, ouve-o.
• A Ubiquitous Language deve predominar desde o
BusinessExpert até a equipe de desenvolvimento
Essência do Domain Driven Design
16
Modelos são baseados em abstrações
17
Modelos são baseados em abstrações
18
Modelos são baseados em abstrações
19
Modelos são baseados em abstrações
20
Modelos são baseados em abstrações
21
Modelos são baseados em abstrações
22
Modelos são baseados em abstrações
23
Modelos são baseados em abstrações
24
• Objetivo principal: Extrair empresas de sites
Vamos modelar...
25
Empresa: Emp A
Rua A, 001. cep:AA
Cidade: Cidade A, AA
Empresa: Emp B
Rua B, 002. cep: BB
Cidade: Cidade B, BB
Empresa: EmpC
Rua C, 003 . cep: CC
Cidade: Cidade C, CC
Empresa Rua Nº CEP Cidade Estado
Emp A A 001 AA Cidade A AA
Emp B B 002 BB Cidade B BB
Emp C C 003 CC Cidade C CC
Atividades atuais
26
Regras de modelagem
27
• São identificadas através de uma identidade
• Um objeto pode ter uma identidade em um domínio
e não ter em outro
versus
• Se uma entidade mudar a regra de negócio é
afetada
Entidades
28
• São identificadas através de suas propriedades
(atributos)
• Um objeto de valor não pode ser alterado, ele é
sempre removido e adicionado um novo
• Não são o foco do negócio
Objetos de valor
29
Atividades atuais
30
Entidades
31
Atividades atuais
32
Entidades
33
Atividades atuais
34
Entidades
35
Atividades atuais
36
Objetos de valor
37
Objetos de valor
38
• Reúnem entidades e objetos de valor de modo a
fazer sentido para o negócio.
• Definem fronteiras claras
• Toda agregação tem uma raiz
Agregações
39
Agregações
40
Agregações
41
Agregações e suas raizes
42
Agregações e suas raízes
43
• Fingem que tem todos os
dados em memória.
• Para o consumidor do
repositório não faz diferença
onde está o objeto.
• São responsáveis por guardar
ou destruir objetos.
Repositórios
44
Repositórios
45
Modelo incompleto
46
• Resolvem problemas de negócio mas não são
entidades nem objetos de valor, pois possuem
apenas comportamentos e não estados de negócio.
Serviços
47
Serviços
48
• Cria objetos complexos ou que possuam dificuldade
de construir.
• Será responsabilidade de um objeto se construir?
Fábricas
49
Fábricas
50
Modelo completo
51
Arquitetura
52
• Mínimo:
– Microsoft Visual Studio 2010 (IDE)
– Microsoft.Net Framework
• Comum:
– Microsoft Entity Framework 4.0 (ORM)
– Microsoft Unity Framework (Inje. Dependência)
– Microsoft Sql-Server 2008
• Recomendado:
– Microsoft Test (Testes automatizados)
– Code Coverage
– Microsoft MVC Framework (web)
Caixa de ferramentas
53
Aplicação
54
Considerações finais
55
Considerações finais
56
Domain Driven Design
Dúvidas?
Centro de Inovação Microsoft
SOCIESC 2010
Sociedade Educacional de Santa Catarina
Lorival Smolski Chapuis
MCPD ASP.NET
http://blog.lorival.com / lorival@chapuis.com.br

Mais conteúdo relacionado

PDF
Treinamento DDD .Net
Henrique Riccio
 
PDF
Domain-Driven-Design
Wende Mendes
 
PDF
Domain Driven Design - Aplicando estrategias e padrões
Joao Paulo Oliveira dos Santos
 
PPTX
Domain Driven Design (DDD)
Mauro Leal
 
PPTX
DDD - Domain Driven Design
Engenharia de Software Ágil
 
PPTX
Domain-Driven Design - Aplicada a um estudo de caso
Jairo Junior
 
PDF
Entendendo Domain-Driven Design
Rafael Ponte
 
PDF
DDD - Domain Driven Design
Daniel Cukier
 
Treinamento DDD .Net
Henrique Riccio
 
Domain-Driven-Design
Wende Mendes
 
Domain Driven Design - Aplicando estrategias e padrões
Joao Paulo Oliveira dos Santos
 
Domain Driven Design (DDD)
Mauro Leal
 
DDD - Domain Driven Design
Engenharia de Software Ágil
 
Domain-Driven Design - Aplicada a um estudo de caso
Jairo Junior
 
Entendendo Domain-Driven Design
Rafael Ponte
 
DDD - Domain Driven Design
Daniel Cukier
 

Mais procurados (13)

PPTX
Bolovo - problema antigo de arquitetura de software - não use por aí
Priscila Mayumi
 
PPTX
Introdução ao Domain-Driven Design
André Borgonovo
 
PPTX
Uma introdução ao Domain Driven Design
Lambda3
 
PDF
Domain Driven Design – DDD além da teoria!, por Paulo Victor Gomes
iMasters
 
PDF
Atacando as complexidades no coração do software
Yan Justino
 
PPTX
Domain Driven Design
Daniel Everling
 
PDF
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
DNAD
 
PDF
Reflexões sobre arquitetura de software
Tiago Sciencia
 
PDF
O (papel do) Arquiteto de Software
Peter Jandl Junior
 
PPT
Engenharia de Software Baseada em Componentes
elliando dias
 
PPTX
Desenvolvimento baseado em componentes
Dávisson Húdson Chaves Bernadete
 
PDF
Feira de Emprego 2015 - Universidade de Coimbra
Dellent Consulting
 
PDF
Apresentação Dellent Consulting
Dellent Consulting
 
Bolovo - problema antigo de arquitetura de software - não use por aí
Priscila Mayumi
 
Introdução ao Domain-Driven Design
André Borgonovo
 
Uma introdução ao Domain Driven Design
Lambda3
 
Domain Driven Design – DDD além da teoria!, por Paulo Victor Gomes
iMasters
 
Atacando as complexidades no coração do software
Yan Justino
 
Domain Driven Design
Daniel Everling
 
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
DNAD
 
Reflexões sobre arquitetura de software
Tiago Sciencia
 
O (papel do) Arquiteto de Software
Peter Jandl Junior
 
Engenharia de Software Baseada em Componentes
elliando dias
 
Desenvolvimento baseado em componentes
Dávisson Húdson Chaves Bernadete
 
Feira de Emprego 2015 - Universidade de Coimbra
Dellent Consulting
 
Apresentação Dellent Consulting
Dellent Consulting
 
Anúncio

Destaque (13)

PDF
Domain-Driven-Design
Wende Mendes
 
PPTX
Design de software com ASP.NET MVC
Waldyr Felix
 
PPT
Criandeiros - Grupo de estudos: MVC
Bruno Bemfica
 
PPT
Domain-Driven Design - Uma Abordagem Introdutória
armeniocardoso
 
PDF
Bounded Context e CQRS na evolução de aplicações .NET legadas
Yan Justino
 
PDF
DDD – Domain Driven Design
Ítalo Bandeira
 
PDF
Arquitetura de Sofware
Jefferson Moreira
 
PPT
Domain Driven Design (DDD) - DevIsland, BH
Giovanni Bassi
 
PDF
Arquitetura MVC
Thiago Pereira
 
PPTX
Apresentação mvc
leopp
 
PDF
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Ryan Padilha
 
PPT
Domain Driven Design (DDD)
Tom Kocjan
 
PPT
Padrões Arquiteturais de Sistemas
Vagner Santana
 
Domain-Driven-Design
Wende Mendes
 
Design de software com ASP.NET MVC
Waldyr Felix
 
Criandeiros - Grupo de estudos: MVC
Bruno Bemfica
 
Domain-Driven Design - Uma Abordagem Introdutória
armeniocardoso
 
Bounded Context e CQRS na evolução de aplicações .NET legadas
Yan Justino
 
DDD – Domain Driven Design
Ítalo Bandeira
 
Arquitetura de Sofware
Jefferson Moreira
 
Domain Driven Design (DDD) - DevIsland, BH
Giovanni Bassi
 
Arquitetura MVC
Thiago Pereira
 
Apresentação mvc
leopp
 
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Ryan Padilha
 
Domain Driven Design (DDD)
Tom Kocjan
 
Padrões Arquiteturais de Sistemas
Vagner Santana
 
Anúncio

Semelhante a Domain driven design - Visão Geral (20)

PDF
DDD
Thiago Veiga
 
PDF
Domain Driven Design: como modelar uma aplicação em Node.js com DDD
Daniel Baptista Dias
 
PPTX
Indo além do técnico para desenvolver sistemas que evoluem na velocidade do...
Taller Negócio Digitais
 
PPTX
Utilizando BDD com Specflow e Selenium para testes Web MSP Tech Day Curitiba
Cleiton Felipe Moraes
 
PDF
O Archimate® como ferramenta de apoio para uso do TOGAF®
Blue Hawk - B&IT Management
 
PPTX
Arquitetura de referência Drupal 7 e 8. Da Natura e Taller para a comunidade ...
Taller Negócio Digitais
 
PDF
TDC2018SP | Trilha UX Design - Design Operations (DesOps) - mapear o trabalho...
tdc-globalcode
 
PDF
Engenharia De Software e O Software Livre
Fabio Sperotto
 
PDF
Get Product Owners 2 Succeed with Agile (Portuguese)
Ignacio Lizarralde
 
PPTX
Métodos Ágeis
Adriano Bertucci
 
PDF
Aula 06 projetos multimídia
Fábio Costa
 
PDF
Aula 06 projetos multimídia
Fábio Costa
 
PDF
Macro Arquitetura de Software
Edjalma Queiroz da Silva
 
PPT
Introdução a Metodologia XP (E Xtreme Programming)
Rennan Martini
 
PDF
A importância de DDD e o Domain Model na construção de APIs!
Isaac de Souza
 
PDF
DDD e Microsservicos - do negócio à arquitetura
Graziella Bonizi
 
PPT
Agência Web - ADDTECH
.add
 
PPT
Práticas de Desenvolvimento de Software
Tiago Barros
 
PPT
Crystalfinal 100906101303-phpapp02
Aldemir Almeida
 
PDF
Aula 1 - Interaction Design From Ethnography, Mental Models to IA
Amyris Fernandez
 
Domain Driven Design: como modelar uma aplicação em Node.js com DDD
Daniel Baptista Dias
 
Indo além do técnico para desenvolver sistemas que evoluem na velocidade do...
Taller Negócio Digitais
 
Utilizando BDD com Specflow e Selenium para testes Web MSP Tech Day Curitiba
Cleiton Felipe Moraes
 
O Archimate® como ferramenta de apoio para uso do TOGAF®
Blue Hawk - B&IT Management
 
Arquitetura de referência Drupal 7 e 8. Da Natura e Taller para a comunidade ...
Taller Negócio Digitais
 
TDC2018SP | Trilha UX Design - Design Operations (DesOps) - mapear o trabalho...
tdc-globalcode
 
Engenharia De Software e O Software Livre
Fabio Sperotto
 
Get Product Owners 2 Succeed with Agile (Portuguese)
Ignacio Lizarralde
 
Métodos Ágeis
Adriano Bertucci
 
Aula 06 projetos multimídia
Fábio Costa
 
Aula 06 projetos multimídia
Fábio Costa
 
Macro Arquitetura de Software
Edjalma Queiroz da Silva
 
Introdução a Metodologia XP (E Xtreme Programming)
Rennan Martini
 
A importância de DDD e o Domain Model na construção de APIs!
Isaac de Souza
 
DDD e Microsservicos - do negócio à arquitetura
Graziella Bonizi
 
Agência Web - ADDTECH
.add
 
Práticas de Desenvolvimento de Software
Tiago Barros
 
Crystalfinal 100906101303-phpapp02
Aldemir Almeida
 
Aula 1 - Interaction Design From Ethnography, Mental Models to IA
Amyris Fernandez
 

Mais de Lorival Smolski Chapuis (9)

PDF
Uso de uma rede neural artificial para previsão do volume de lodo gerado em e...
Lorival Smolski Chapuis
 
PPTX
Joinville Dojo 2010
Lorival Smolski Chapuis
 
PPTX
DotNet Framework e Orientação a Objetos 1 - Introdução
Lorival Smolski Chapuis
 
PPTX
Aula inaugural da GeraçãoTec - Softville/Joinville
Lorival Smolski Chapuis
 
PDF
Tutorial realidade aumentada - Sociesc 2011
Lorival Smolski Chapuis
 
PPTX
Realidade Aumentada - Sociesc 2011
Lorival Smolski Chapuis
 
PDF
Algoritmos de ordenação
Lorival Smolski Chapuis
 
PDF
Iadis Conference Flood Forecasting
Lorival Smolski Chapuis
 
PPTX
Coding Dojo - Aplicando Princípios Ágeis
Lorival Smolski Chapuis
 
Uso de uma rede neural artificial para previsão do volume de lodo gerado em e...
Lorival Smolski Chapuis
 
Joinville Dojo 2010
Lorival Smolski Chapuis
 
DotNet Framework e Orientação a Objetos 1 - Introdução
Lorival Smolski Chapuis
 
Aula inaugural da GeraçãoTec - Softville/Joinville
Lorival Smolski Chapuis
 
Tutorial realidade aumentada - Sociesc 2011
Lorival Smolski Chapuis
 
Realidade Aumentada - Sociesc 2011
Lorival Smolski Chapuis
 
Algoritmos de ordenação
Lorival Smolski Chapuis
 
Iadis Conference Flood Forecasting
Lorival Smolski Chapuis
 
Coding Dojo - Aplicando Princípios Ágeis
Lorival Smolski Chapuis
 

Último (20)

DOCX
Mapa da Mesoamérica - Áreas Culturais.docx
Doug Caesar
 
PPTX
Formacao do Ministro Extraordinário da Palavra
rafaelcorrea749
 
PPT
compreender e interpretar diferenças.ppt
TahinMoreira
 
PPTX
7º ano formação das monarquias nacionais.pptx
taylorjeronimo49
 
PPTX
Novas Tecnologias na Cartografia explorando.pptx
Rafaelalima466076
 
PDF
Reflexão_Uma análise às licenciaturas que permitem aceder aos mestrados de en...
Nelson Santos
 
DOCX
Mapa das Ilhas Salomão - Mapa dos Países do Mundo
Doug Caesar
 
PPTX
DERIVA URBANA EM FEIRA DE SANTANA BAHIA.pptx
JanmileSilva1
 
DOCX
Mapa de Papua-Nova Guiné - Mapa dos Países do Mundo
Doug Caesar
 
PPTX
etiquetas com números até 20. sala de aula
CarlaPereira206224
 
PDF
4-Curriculo-no-contexto-da-Formacao.447.pdf
HelcimarSilva1
 
PPTX
Bullying presentación para niños de todas las edades
MairaSotoFernndez1
 
PPTX
Slides Lição 6, CPAD, Uma Igreja Não Conivente Com A Mentira, 3Tr25.pptx
LuizHenriquedeAlmeid6
 
PDF
FICHA FINANÇAS: como controlar meu dinheiro
Professor Belinaso
 
DOCX
Mapa das Áreas Culturais Indígenas da América Central.docx
Doug Caesar
 
PDF
FILOSOFIA DA EDUCAÇÃO para estudo (1).pdf
ianne22
 
PDF
BIOLOGIA CELULAR - Biologia | Primeiro Ano Ens. Médio
islaineeli
 
PPTX
Slides Lição 4, CG, Pedro, A Epístola Da Esperança, 3Tr25.pptx
LuizHenriquedeAlmeid6
 
PPTX
slide de historia sobre o descobrimento do brasil
speedgames391
 
PPTX
MUNCK TREINAMENTO DE MAQUINAS PESADAS...
consultoriagestaosst
 
Mapa da Mesoamérica - Áreas Culturais.docx
Doug Caesar
 
Formacao do Ministro Extraordinário da Palavra
rafaelcorrea749
 
compreender e interpretar diferenças.ppt
TahinMoreira
 
7º ano formação das monarquias nacionais.pptx
taylorjeronimo49
 
Novas Tecnologias na Cartografia explorando.pptx
Rafaelalima466076
 
Reflexão_Uma análise às licenciaturas que permitem aceder aos mestrados de en...
Nelson Santos
 
Mapa das Ilhas Salomão - Mapa dos Países do Mundo
Doug Caesar
 
DERIVA URBANA EM FEIRA DE SANTANA BAHIA.pptx
JanmileSilva1
 
Mapa de Papua-Nova Guiné - Mapa dos Países do Mundo
Doug Caesar
 
etiquetas com números até 20. sala de aula
CarlaPereira206224
 
4-Curriculo-no-contexto-da-Formacao.447.pdf
HelcimarSilva1
 
Bullying presentación para niños de todas las edades
MairaSotoFernndez1
 
Slides Lição 6, CPAD, Uma Igreja Não Conivente Com A Mentira, 3Tr25.pptx
LuizHenriquedeAlmeid6
 
FICHA FINANÇAS: como controlar meu dinheiro
Professor Belinaso
 
Mapa das Áreas Culturais Indígenas da América Central.docx
Doug Caesar
 
FILOSOFIA DA EDUCAÇÃO para estudo (1).pdf
ianne22
 
BIOLOGIA CELULAR - Biologia | Primeiro Ano Ens. Médio
islaineeli
 
Slides Lição 4, CG, Pedro, A Epístola Da Esperança, 3Tr25.pptx
LuizHenriquedeAlmeid6
 
slide de historia sobre o descobrimento do brasil
speedgames391
 
MUNCK TREINAMENTO DE MAQUINAS PESADAS...
consultoriagestaosst
 

Domain driven design - Visão Geral

  • 1. Arquitetura e modelagem de Software orientada a domínio Domain Driven Design Lorival Smolski Chapuis MCPD ASP.NET http://blog.lorival.com / [email protected] Centro de Inovação Microsoft SOCIESC 2010 Sociedade Educacional de Santa Catarina
  • 2. “... 1 hora não dá pra nada. Você vai mostrar a mecânica do DDD, e o pessoal vai sair achando que DDD é entidades+repositórios... Já percebi que por mais esforço que façamos, técnicos tendem a simplificar o que viram, e sobra só isso na cabeça deles ...” Giovani Bassi Arquiteto de Software, MVP Considerações iniciais 2
  • 3. • O que é Domain Driven Design • Surgimento, objetivos e vantagens • Essência do Domain Driven Design • Modelando um domínio real • Regras para modelagem • Arquitetura em camadas • Caixa de ferramentas Microsoft • Apresentação de uma aplicação • Considerações finais Agenda 3
  • 4. É uma abordagem de design de software disciplinada que reúne um conjunto de conceitos, técnicas e princípios para construção de softwares baseados em um modelo de domínio. Domain Driven Design 4
  • 5. É uma abordagem de design de software Disciplinada que reúne um conjunto de conceitos, técnicas e princípios para construção de softwares baseados em um modelo de domínio. Domain Driven Design 5
  • 6. É uma abordagem de design de software Disciplinada que reúne um conjunto de conceitos, técnicas e princípios para construção de softwares baseados em um modelo de domínio. Domain Driven Design 6 É todo e qualquer conhecimento (esfera de conhecimento) utilizado em uma determinada área. Um domínio possuí regras de negócio.
  • 7. É uma abordagem de design de software Disciplinada que reúne um conjunto de conceitos, técnicas e princípios para construção de softwares baseados em um modelo de domínio. Domain Driven Design 7
  • 8. É uma abordagem de design de software Disciplinada que reúne um conjunto de conceitos, técnicas e princípios para construção de softwares baseados em um modelo de domínio. Domain Driven Design 8 Pode ser expresso de várias formas: apresentação de slides, UML, rascunhos em papel, organograma, etc...
  • 9. É uma abordagem de design de software Disciplinada que reúne um conjunto de conceitos, técnicas e princípios para construção de softwares baseados em um modelo de domínio. Domain Driven Design 9
  • 10. É uma abordagem de design de software Disciplinada que reúne um conjunto de conceitos, técnicas e princípios para construção de softwares baseados em um modelo de domínio. Domain Driven Design 10 Object Oriented programming Ubiquitous Language Domain patterns Layered architecture Design patterns ... ...
  • 11. Surgimento 11 Há 20 anos criam-se padrões e técnicas para arquitetura e modelagem de software Orientada a Objetos. Há 6 anos Eric Evans compilou várias destas técnicas e unindo com suas experiências criou o DDD
  • 12. Há 20 anos criam-se padrões e técnicas para arquitetura e modelagem de software Orientada a Objetos. Há 6 anos Eric Evans compilou várias destas técnicas e unindo com suas experiências criou o DDD Surgimento 12 Design de domínio Pouco foi escrito sobre isso Não se tinha claro como deveria ser feito
  • 13. Há 20 anos criam-se padrões e técnicas para arquitetura e modelagem de software Orientada a Objetos. Há 6 anos Eric Evans compilou várias destas técnicas e unindo com suas experiências criou o DDD Surgimento 13 Padrões de arquitetura Mais de 10 anos como arquiteto de software Boas práticas Padrões de desenvolvimento Grandes e pequenos projetos
  • 14. 1. Aproximar desenvolvimento de software do domínio do problema. 2. Aumentar a vida de um software. 3. Ter códigos mais claros e fáceis de entender. 4. Utilizar o principal recurso da orientação a objetos: a aproximação do mundo real através de abstrações. Objetivos 14
  • 15. Vantagens 15 1. Fácil comunicação entre desenvolvedores, analistas e clientes. 2. Construir software testáveis. 3. Fácil manutenção e crescimento do software. 4. Agregar ou trocar colaboradores na equipe de desenvolvimento não é mais um problema. 5. Entenda o cliente, o modelo e o código.
  • 16. • Para a maioria dos projetos de software o foco principal deve ser no domínio • O modelo deve ser baseado em um domínio • Você conhece software, o BusinessExpert conhece o domínio, ouve-o. • A Ubiquitous Language deve predominar desde o BusinessExpert até a equipe de desenvolvimento Essência do Domain Driven Design 16
  • 17. Modelos são baseados em abstrações 17
  • 18. Modelos são baseados em abstrações 18
  • 19. Modelos são baseados em abstrações 19
  • 20. Modelos são baseados em abstrações 20
  • 21. Modelos são baseados em abstrações 21
  • 22. Modelos são baseados em abstrações 22
  • 23. Modelos são baseados em abstrações 23
  • 24. Modelos são baseados em abstrações 24
  • 25. • Objetivo principal: Extrair empresas de sites Vamos modelar... 25 Empresa: Emp A Rua A, 001. cep:AA Cidade: Cidade A, AA Empresa: Emp B Rua B, 002. cep: BB Cidade: Cidade B, BB Empresa: EmpC Rua C, 003 . cep: CC Cidade: Cidade C, CC Empresa Rua Nº CEP Cidade Estado Emp A A 001 AA Cidade A AA Emp B B 002 BB Cidade B BB Emp C C 003 CC Cidade C CC
  • 28. • São identificadas através de uma identidade • Um objeto pode ter uma identidade em um domínio e não ter em outro versus • Se uma entidade mudar a regra de negócio é afetada Entidades 28
  • 29. • São identificadas através de suas propriedades (atributos) • Um objeto de valor não pode ser alterado, ele é sempre removido e adicionado um novo • Não são o foco do negócio Objetos de valor 29
  • 39. • Reúnem entidades e objetos de valor de modo a fazer sentido para o negócio. • Definem fronteiras claras • Toda agregação tem uma raiz Agregações 39
  • 42. Agregações e suas raizes 42
  • 43. Agregações e suas raízes 43
  • 44. • Fingem que tem todos os dados em memória. • Para o consumidor do repositório não faz diferença onde está o objeto. • São responsáveis por guardar ou destruir objetos. Repositórios 44
  • 47. • Resolvem problemas de negócio mas não são entidades nem objetos de valor, pois possuem apenas comportamentos e não estados de negócio. Serviços 47
  • 49. • Cria objetos complexos ou que possuam dificuldade de construir. • Será responsabilidade de um objeto se construir? Fábricas 49
  • 53. • Mínimo: – Microsoft Visual Studio 2010 (IDE) – Microsoft.Net Framework • Comum: – Microsoft Entity Framework 4.0 (ORM) – Microsoft Unity Framework (Inje. Dependência) – Microsoft Sql-Server 2008 • Recomendado: – Microsoft Test (Testes automatizados) – Code Coverage – Microsoft MVC Framework (web) Caixa de ferramentas 53
  • 57. Domain Driven Design Dúvidas? Centro de Inovação Microsoft SOCIESC 2010 Sociedade Educacional de Santa Catarina Lorival Smolski Chapuis MCPD ASP.NET http://blog.lorival.com / [email protected]