introdução ao d d dapi.ning.com/.../ddd.pdfdomain-driven design introdução ao @charlesfortes...
TRANSCRIPT
![Page 1: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/1.jpg)
D D DIntrodução ao
@CharlesFortes
.com
![Page 2: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/2.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
O que é
Domain-DrivenDesign?
![Page 3: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/3.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
É Desenvolver Focado no
Domínio
![Page 4: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/4.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
É Desenvolver Focado no
Domínio
WTF?
![Page 5: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/5.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
Domínio Segundo o Dicionário:
• Esfera de Ação; Competência;
Conhecimento.
• O conteúdo de uma área de
conhecimento.
![Page 6: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/6.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
Domínio é a área de conhecimento do negócio.
Tudo do Software ligado ao negócio faz parte do domínio
![Page 7: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/7.jpg)
Locadora
Locadora
Locadora
Locadora
Locadora
Locadora
Domain-Driven Design Introdução ao
@CharlesFortes
.com
Meu Negócio: Locar Filmes
Fornecedor
Mídias
Filmes
Usuários
Funcionários
Dependentes
Cliente
Locação de Filme
Reserva de Filme
...
Cadastros de Clientes e
Dependentes
![Page 8: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/8.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
NÃO faz parte do domínio
Banco de Dados ou Frameworks para os mesmos como o
Nhibernate
Threads
Tratamentos de Excessão
![Page 9: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/9.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
Principais Vantagens
As tecnologias mudam muito mais rápido do que o negócio
Camadas bem definidas
Responsabilidades claras e bem divididas
Manutenabilidade, Longevidade, Escalabilidade, etc...
![Page 10: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/10.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
Principais Desvantagens
Mais tempo para desenvolver (porém poupa tempo
futuro durante a manutenção e a extensão)
Complexidade! Não é a solução para todos os problemas...
![Page 11: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/11.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
O Modelo e a Linguagem Ubíqua
Para o entendimento do domínio deve-se gerar um
MODELO do domínio
![Page 12: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/12.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
O Modelo e a Linguagem Ubíqua
MODELO
WTF? ?
![Page 13: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/13.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
O Modelo e a Linguagem Ubíqua
Os modelos são abstrações que visam refletir o código
Evans cita em seu livro que o modelo não pode ser "gordo" demais ao ponto de prejudicar a compreensão do domínio.
![Page 14: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/14.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
O Modelo e a Linguagem Ubíqua
E o código, por sua vez, deve ser usado para detalhar o modelo.
Regras importantes devem estar expostas no modelo, e jamais escondidas no
código.
![Page 15: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/15.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
O Modelo e a Linguagem Ubíqua
O modelo deve ser muito claro!
Deve ser entendido absolutamente da mesma forma por qualquer
pessoa, seja ele
o usuário, o desenvolvedor, o arquiteto, o projetista, o designer
a menina do marketing, a tia do café, e até o tester ( sim, ele também tem que
ser capaz de entender só de ler )
![Page 16: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/16.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
O Modelo e a Linguagem Ubíqua
Para que o modelo seja entendido é necessário uma
linguagem ubíqua!
![Page 17: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/17.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
O Modelo e a Linguagem Ubíqua
Para que o modelo seja entendido é necessário uma
linguagem ubíqua!
WTF?
![Page 18: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/18.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
O Modelo e a Linguagem Ubíqua
Uma linguagem ubíqua é uma linguagem única falada por todos os
envolvidos no projeto, de forma que a todo momento possa-se conversar sobre o projeto sem ter de ficar traduzindo o que está sendo falado
![Page 19: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/19.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
O Modelo e a Linguagem Ubíqua
Tudo isso para evitar maus entendidos
![Page 20: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/20.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
O Modelo e a Linguagem Ubíqua
O modelo pode ser qualquer coisa, contanto que consiga expressar de forma clara o domínio
![Page 21: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/21.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
Todo o domínio
(implementação) giram em torno
do modelo
![Page 22: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/22.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
Lets Model
0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0
![Page 23: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/23.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
Entidades Objetos de Valor Repositórios Serviços Fabricas Entidades Objetos de Valor Repositórios Serviços Fabricas Entidades Objetos de Valor Repositórios Serviços Fabricas
![Page 24: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/24.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
Entidades são objetos que têm significado no domínio, possuindo uma
identidade única
Entidades
Usuário Filme
Funcionário
Mídia
Dependente
Cliente
![Page 25: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/25.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
Entidades Objetos de Valor Repositórios Serviços Fabricas Entidades Objetos de Valor Repositórios Serviços Fabricas Entidades Objetos de Valor Repositórios Serviços Fabricas
![Page 26: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/26.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
Objetos de Valor não tem valor direto ao negócio, e por isto
não possuem uma identidade.
Cliente
Nome
CPF
Telefone
Endereco Usados como estrutura de dados apenas para armazenar
valores.
Muito usados para transporte de dados ou
composição de
objetos.
Logradouro
Numero
Bairro
etc
etc
![Page 27: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/27.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
Entidades Objetos de Valor Repositórios Serviços Fabricas Entidades Objetos de Valor Repositórios Serviços Fabricas Entidades Objetos de Valor Repositórios Serviços Fabricas
![Page 28: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/28.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
Repositórios são responsáveis por persistir, recuperar e destruir
objetos
Fingem possuir todas as entidades na memória, para
quem utiliza não importa onde estão os
dados
![Page 29: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/29.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
Armários de Caixas
Fingem possuir todas as entidades na memória, para
quem utiliza não importa onde estão os
dados
(Sim, foi feito no paint...)
![Page 30: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/30.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
Entidades Objetos de Valor Repositórios Serviços Fabricas Entidades Objetos de Valor Repositórios Serviços Fabricas Entidades Objetos de Valor Repositórios Serviços Fabricas
![Page 31: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/31.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
Serviços na visão do DDD consiste em um objeto que visa resolver
problemas do domínio
Para isto o “service” utiliza Entidades, Objetos de
Valor, Repositórios,
infraestrutura, etc..
![Page 32: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/32.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
Meu Negócio: Locar Filmes
Locar Filme
Reservar Filme
Cadastrar Cliente
Pesquisar Filme
Etc...
Serviços na visão do DDD consiste em um objeto que visa resolver
problemas do domínio
![Page 33: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/33.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
Entidades Objetos de Valor Repositórios Serviços Fabricas Entidades Objetos de Valor Repositórios Serviços Fabricas Entidades Objetos de Valor Repositórios Serviços Fabricas
![Page 34: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/34.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
Muitas vezes criar um novo objeto para atender a um aspecto do
domínio envolve a instanciação de diversas entidades, agregações e composições.
Quando isto se faz necessário não o fazemos dentro do construtor da classe, passamos esta responsabilidade para
uma fábrica.
Outras vezes pode ser necessário decidir entre valores de
inicialização padrão ou mesmo da especialização da classe.
![Page 35: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/35.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
![Page 36: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/36.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
Neste caso a especialização na construção é prática pois: • As entidades são mapeadas em diferentes tabelas do banco de dados • As entidades possuem diferentes validadores
![Page 37: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/37.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
Lets Code
0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0
![Page 38: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/38.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
.com
Concluindo...
Defina uma linguagem única, expresse o negócio do cliente de forma clara e certifique-se que TODOS falam a mesma língua. Implemente de forma que o código traduza de forma analítica o que está foi modelado, para que daqui a 20 anos, quando o estagiário for mexer no fonte, ele saiba do que se trata, e se não souber, pode consultar ao productOwner sem problemas. E lembre-se do princípio de fazer simples, refatorar e melhorar sempre.
![Page 39: Introdução ao D D Dapi.ning.com/.../DDD.pdfDomain-Driven Design Introdução ao @CharlesFortes .com Muitas vezes criar um novo objeto para atender a um aspecto do domínio envolve](https://reader030.vdocuments.site/reader030/viewer/2022040210/5e4e788ffc346632be709fcf/html5/thumbnails/39.jpg)
Domain-Driven Design Introdução ao
@CharlesFortes
pangeanet.org/profile/charlesfortes
br.linkedin.com/in/charlesfortes