SlideShare una empresa de Scribd logo
1 de 57
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

Más contenido relacionado

La actualidad más candente

Bolovo - problema antigo de arquitetura de software - não use por aí
Bolovo - problema antigo de arquitetura de software - não use por aíBolovo - problema antigo de arquitetura de software - não use por aí
Bolovo - problema antigo de arquitetura de software - não use por aíPriscila Mayumi
 
Introdução ao Domain-Driven Design
Introdução ao Domain-Driven DesignIntrodução ao Domain-Driven Design
Introdução ao Domain-Driven DesignAndré Borgonovo
 
Uma introdução ao Domain Driven Design
Uma introdução ao Domain Driven DesignUma introdução ao Domain Driven Design
Uma introdução ao Domain Driven DesignLambda3
 
Domain Driven Design – DDD além da teoria!, por Paulo Victor Gomes
Domain Driven Design – DDD além da teoria!, por Paulo Victor GomesDomain Driven Design – DDD além da teoria!, por Paulo Victor Gomes
Domain Driven Design – DDD além da teoria!, por Paulo Victor GomesiMasters
 
Atacando as complexidades no coração do software
Atacando as complexidades no coração do softwareAtacando as complexidades no coração do software
Atacando as complexidades no coração do softwareYan Justino
 
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TIDNAD
 
Reflexões sobre arquitetura de software
Reflexões sobre arquitetura de softwareReflexões sobre arquitetura de software
Reflexões sobre arquitetura de softwareTiago Sciencia
 
O (papel do) Arquiteto de Software
O (papel do) Arquiteto de SoftwareO (papel do) Arquiteto de Software
O (papel do) Arquiteto de SoftwarePeter Jandl Junior
 
Engenharia de Software Baseada em Componentes
Engenharia de Software Baseada em ComponentesEngenharia de Software Baseada em Componentes
Engenharia de Software Baseada em Componenteselliando dias
 
Feira de Emprego 2015 - Universidade de Coimbra
Feira de Emprego 2015 - Universidade de Coimbra Feira de Emprego 2015 - Universidade de Coimbra
Feira de Emprego 2015 - Universidade de Coimbra Dellent Consulting
 
Apresentação Dellent Consulting
Apresentação Dellent ConsultingApresentação Dellent Consulting
Apresentação Dellent ConsultingDellent Consulting
 

La actualidad más candente (13)

Bolovo - problema antigo de arquitetura de software - não use por aí
Bolovo - problema antigo de arquitetura de software - não use por aíBolovo - problema antigo de arquitetura de software - não use por aí
Bolovo - problema antigo de arquitetura de software - não use por aí
 
Introdução ao Domain-Driven Design
Introdução ao Domain-Driven DesignIntrodução ao Domain-Driven Design
Introdução ao Domain-Driven Design
 
Uma introdução ao Domain Driven Design
Uma introdução ao Domain Driven DesignUma introdução ao Domain Driven Design
Uma introdução ao Domain Driven Design
 
Domain Driven Design – DDD além da teoria!, por Paulo Victor Gomes
Domain Driven Design – DDD além da teoria!, por Paulo Victor GomesDomain Driven Design – DDD além da teoria!, por Paulo Victor Gomes
Domain Driven Design – DDD além da teoria!, por Paulo Victor Gomes
 
Atacando as complexidades no coração do software
Atacando as complexidades no coração do softwareAtacando as complexidades no coração do software
Atacando as complexidades no coração do software
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
 
Reflexões sobre arquitetura de software
Reflexões sobre arquitetura de softwareReflexões sobre arquitetura de software
Reflexões sobre arquitetura de software
 
O (papel do) Arquiteto de Software
O (papel do) Arquiteto de SoftwareO (papel do) Arquiteto de Software
O (papel do) Arquiteto de Software
 
Engenharia de Software Baseada em Componentes
Engenharia de Software Baseada em ComponentesEngenharia de Software Baseada em Componentes
Engenharia de Software Baseada em Componentes
 
Desenvolvimento baseado em componentes
Desenvolvimento baseado em componentesDesenvolvimento baseado em componentes
Desenvolvimento baseado em componentes
 
Feira de Emprego 2015 - Universidade de Coimbra
Feira de Emprego 2015 - Universidade de Coimbra Feira de Emprego 2015 - Universidade de Coimbra
Feira de Emprego 2015 - Universidade de Coimbra
 
Apresentação Dellent Consulting
Apresentação Dellent ConsultingApresentação Dellent Consulting
Apresentação Dellent Consulting
 

Destacado

Domain-Driven-Design
Domain-Driven-DesignDomain-Driven-Design
Domain-Driven-DesignWende Mendes
 
Design de software com ASP.NET MVC
Design de software com ASP.NET MVCDesign de software com ASP.NET MVC
Design de software com ASP.NET MVCWaldyr Felix
 
Criandeiros - Grupo de estudos: MVC
Criandeiros - Grupo de estudos: MVCCriandeiros - Grupo de estudos: MVC
Criandeiros - Grupo de estudos: MVCBruno Bemfica
 
Domain-Driven Design - Uma Abordagem Introdutória
Domain-Driven Design - Uma Abordagem IntrodutóriaDomain-Driven Design - Uma Abordagem Introdutória
Domain-Driven Design - Uma Abordagem Introdutóriaarmeniocardoso
 
Bounded Context e CQRS na evolução de aplicações .NET legadas
Bounded Context e CQRS na evolução de aplicações .NET legadasBounded Context e CQRS na evolução de aplicações .NET legadas
Bounded Context e CQRS na evolução de aplicações .NET legadasYan Justino
 
DDD – Domain Driven Design
DDD – Domain Driven DesignDDD – Domain Driven Design
DDD – Domain Driven DesignÍtalo Bandeira
 
Domain Driven Design (DDD) - DevIsland, BH
Domain Driven Design (DDD) - DevIsland, BHDomain Driven Design (DDD) - DevIsland, BH
Domain Driven Design (DDD) - DevIsland, BHGiovanni Bassi
 
Apresentação mvc
Apresentação mvcApresentação mvc
Apresentação mvcleopp
 
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelDesign Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelRyan Padilha
 
Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)Tom Kocjan
 
Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasVagner Santana
 

Destacado (13)

Domain-Driven-Design
Domain-Driven-DesignDomain-Driven-Design
Domain-Driven-Design
 
Design de software com ASP.NET MVC
Design de software com ASP.NET MVCDesign de software com ASP.NET MVC
Design de software com ASP.NET MVC
 
Criandeiros - Grupo de estudos: MVC
Criandeiros - Grupo de estudos: MVCCriandeiros - Grupo de estudos: MVC
Criandeiros - Grupo de estudos: MVC
 
Domain-Driven Design - Uma Abordagem Introdutória
Domain-Driven Design - Uma Abordagem IntrodutóriaDomain-Driven Design - Uma Abordagem Introdutória
Domain-Driven Design - Uma Abordagem Introdutória
 
Bounded Context e CQRS na evolução de aplicações .NET legadas
Bounded Context e CQRS na evolução de aplicações .NET legadasBounded Context e CQRS na evolução de aplicações .NET legadas
Bounded Context e CQRS na evolução de aplicações .NET legadas
 
DDD – Domain Driven Design
DDD – Domain Driven DesignDDD – Domain Driven Design
DDD – Domain Driven Design
 
Arquitetura de Sofware
Arquitetura de SofwareArquitetura de Sofware
Arquitetura de Sofware
 
Domain Driven Design (DDD) - DevIsland, BH
Domain Driven Design (DDD) - DevIsland, BHDomain Driven Design (DDD) - DevIsland, BH
Domain Driven Design (DDD) - DevIsland, BH
 
Arquitetura MVC
Arquitetura MVCArquitetura MVC
Arquitetura MVC
 
Apresentação mvc
Apresentação mvcApresentação mvc
Apresentação mvc
 
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelDesign Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
 
Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)
 
Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de Sistemas
 

Similar a Domain driven design - Visão Geral

Domain Driven Design: como modelar uma aplicação em Node.js com DDD
Domain Driven Design: como modelar uma aplicação em Node.js com DDDDomain Driven Design: como modelar uma aplicação em Node.js com DDD
Domain Driven Design: como modelar uma aplicação em Node.js com DDDDaniel Baptista Dias
 
Indo além do técnico para desenvolver sistemas que evoluem na velocidade do...
Indo além do técnico para desenvolver sistemas que evoluem na velocidade do...Indo além do técnico para desenvolver sistemas que evoluem na velocidade do...
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
Utilizando BDD com Specflow e Selenium para testes Web MSP Tech Day CuritibaUtilizando BDD com Specflow e Selenium para testes Web MSP Tech Day Curitiba
Utilizando BDD com Specflow e Selenium para testes Web MSP Tech Day CuritibaCleiton Felipe Moraes
 
O Archimate® como ferramenta de apoio para uso do TOGAF®
O Archimate® como ferramenta de apoio para uso do TOGAF® O Archimate® como ferramenta de apoio para uso do TOGAF®
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 ...
Arquitetura de referência Drupal 7 e 8. Da Natura e Taller para a comunidade ...Arquitetura de referência Drupal 7 e 8. Da Natura e Taller para a comunidade ...
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...
TDC2018SP | Trilha UX Design - Design Operations (DesOps) - mapear o trabalho...TDC2018SP | Trilha UX Design - Design Operations (DesOps) - mapear o trabalho...
TDC2018SP | Trilha UX Design - Design Operations (DesOps) - mapear o trabalho...tdc-globalcode
 
Engenharia De Software e O Software Livre
Engenharia De Software e O Software LivreEngenharia De Software e O Software Livre
Engenharia De Software e O Software LivreFabio Sperotto
 
Get Product Owners 2 Succeed with Agile (Portuguese)
Get Product Owners 2 Succeed with Agile (Portuguese)Get Product Owners 2 Succeed with Agile (Portuguese)
Get Product Owners 2 Succeed with Agile (Portuguese)Ignacio Lizarralde
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídiaFábio Costa
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídiaFábio Costa
 
Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Rennan Martini
 
A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!Isaac de Souza
 
DDD e Microsservicos - do negócio à arquitetura
DDD e Microsservicos - do negócio à arquiteturaDDD e Microsservicos - do negócio à arquitetura
DDD e Microsservicos - do negócio à arquiteturaGraziella Bonizi
 
Agência Web - ADDTECH
Agência Web - ADDTECHAgência Web - ADDTECH
Agência Web - ADDTECH.add
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwareTiago Barros
 
Crystalfinal 100906101303-phpapp02
Crystalfinal 100906101303-phpapp02Crystalfinal 100906101303-phpapp02
Crystalfinal 100906101303-phpapp02Aldemir Almeida
 
Aula 1 - Interaction Design From Ethnography, Mental Models to IA
Aula 1 - Interaction Design From Ethnography, Mental Models to IAAula 1 - Interaction Design From Ethnography, Mental Models to IA
Aula 1 - Interaction Design From Ethnography, Mental Models to IAAmyris Fernandez
 

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

DDD
DDDDDD
DDD
 
Domain Driven Design: como modelar uma aplicação em Node.js com DDD
Domain Driven Design: como modelar uma aplicação em Node.js com DDDDomain Driven Design: como modelar uma aplicação em Node.js com DDD
Domain Driven Design: como modelar uma aplicação em Node.js com DDD
 
Indo além do técnico para desenvolver sistemas que evoluem na velocidade do...
Indo além do técnico para desenvolver sistemas que evoluem na velocidade do...Indo além do técnico para desenvolver sistemas que evoluem na velocidade do...
Indo além do técnico para desenvolver sistemas que evoluem na velocidade do...
 
Utilizando BDD com Specflow e Selenium para testes Web MSP Tech Day Curitiba
Utilizando BDD com Specflow e Selenium para testes Web MSP Tech Day CuritibaUtilizando BDD com Specflow e Selenium para testes Web MSP Tech Day Curitiba
Utilizando BDD com Specflow e Selenium para testes Web MSP Tech Day Curitiba
 
O Archimate® como ferramenta de apoio para uso do TOGAF®
O Archimate® como ferramenta de apoio para uso do TOGAF® O Archimate® como ferramenta de apoio para uso do TOGAF®
O Archimate® como ferramenta de apoio para uso do TOGAF®
 
Arquitetura de referência Drupal 7 e 8. Da Natura e Taller para a comunidade ...
Arquitetura de referência Drupal 7 e 8. Da Natura e Taller para a comunidade ...Arquitetura de referência Drupal 7 e 8. Da Natura e Taller para a comunidade ...
Arquitetura de referência Drupal 7 e 8. Da Natura e Taller para a comunidade ...
 
TDC2018SP | Trilha UX Design - Design Operations (DesOps) - mapear o trabalho...
TDC2018SP | Trilha UX Design - Design Operations (DesOps) - mapear o trabalho...TDC2018SP | Trilha UX Design - Design Operations (DesOps) - mapear o trabalho...
TDC2018SP | Trilha UX Design - Design Operations (DesOps) - mapear o trabalho...
 
Engenharia De Software e O Software Livre
Engenharia De Software e O Software LivreEngenharia De Software e O Software Livre
Engenharia De Software e O Software Livre
 
Get Product Owners 2 Succeed with Agile (Portuguese)
Get Product Owners 2 Succeed with Agile (Portuguese)Get Product Owners 2 Succeed with Agile (Portuguese)
Get Product Owners 2 Succeed with Agile (Portuguese)
 
Métodos Ágeis
Métodos ÁgeisMétodos Ágeis
Métodos Ágeis
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídia
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídia
 
Macro Arquitetura de Software
Macro Arquitetura de SoftwareMacro Arquitetura de Software
Macro Arquitetura de Software
 
Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)
 
A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!
 
DDD e Microsservicos - do negócio à arquitetura
DDD e Microsservicos - do negócio à arquiteturaDDD e Microsservicos - do negócio à arquitetura
DDD e Microsservicos - do negócio à arquitetura
 
Agência Web - ADDTECH
Agência Web - ADDTECHAgência Web - ADDTECH
Agência Web - ADDTECH
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de Software
 
Crystalfinal 100906101303-phpapp02
Crystalfinal 100906101303-phpapp02Crystalfinal 100906101303-phpapp02
Crystalfinal 100906101303-phpapp02
 
Aula 1 - Interaction Design From Ethnography, Mental Models to IA
Aula 1 - Interaction Design From Ethnography, Mental Models to IAAula 1 - Interaction Design From Ethnography, Mental Models to IA
Aula 1 - Interaction Design From Ethnography, Mental Models to IA
 

Más de Lorival Smolski Chapuis

Uso de uma rede neural artificial para previsão do volume de lodo gerado em e...
Uso de uma rede neural artificial para previsão do volume de lodo gerado em e...Uso de uma rede neural artificial para previsão do volume de lodo gerado em e...
Uso de uma rede neural artificial para previsão do volume de lodo gerado em e...Lorival Smolski Chapuis
 
DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoLorival Smolski Chapuis
 
Aula inaugural da GeraçãoTec - Softville/Joinville
Aula inaugural da GeraçãoTec - Softville/JoinvilleAula inaugural da GeraçãoTec - Softville/Joinville
Aula inaugural da GeraçãoTec - Softville/JoinvilleLorival Smolski Chapuis
 
Tutorial realidade aumentada - Sociesc 2011
Tutorial realidade aumentada - Sociesc 2011Tutorial realidade aumentada - Sociesc 2011
Tutorial realidade aumentada - Sociesc 2011Lorival Smolski Chapuis
 
Coding Dojo - Aplicando Princípios Ágeis
Coding Dojo - Aplicando Princípios ÁgeisCoding Dojo - Aplicando Princípios Ágeis
Coding Dojo - Aplicando Princípios ÁgeisLorival Smolski Chapuis
 

Más de Lorival Smolski Chapuis (9)

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

Último

PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfHELENO FAVACHO
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecniCleidianeCarvalhoPer
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)ElliotFerreira
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfWagnerCamposCEA
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médiorosenilrucks
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAHELENO FAVACHO
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...HELENO FAVACHO
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 

Último (20)

PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 

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 / lorival@chapuis.com.br 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 / lorival@chapuis.com.br