ddd – domain driven design
DESCRIPTION
Apresentação sobre Domain Driven Design (DDD) na reunião do Guma-RSTRANSCRIPT
![Page 1: DDD – Domain Driven Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/55731f55d8b42aae7b8b4bce/html5/thumbnails/1.jpg)
GUMA-RSPrática
DDD – Domain Driven Design
saraiva :D)
![Page 2: DDD – Domain Driven Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/55731f55d8b42aae7b8b4bce/html5/thumbnails/2.jpg)
Porquê DDD?
Scrumcerimónias?????débitos
técnicos?????
“Gerência”
Engenharia
![Page 3: DDD – Domain Driven Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/55731f55d8b42aae7b8b4bce/html5/thumbnails/3.jpg)
Porquê DDD?
DDD, TDD, IC
“Gerência”
Engenharia
Scrumcerimónias
![Page 4: DDD – Domain Driven Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/55731f55d8b42aae7b8b4bce/html5/thumbnails/4.jpg)
DDDDomínio
![Page 5: DDD – Domain Driven Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/55731f55d8b42aae7b8b4bce/html5/thumbnails/5.jpg)
Modelos
* Modelo não é UML.
* Modelos são abstrações.
* Equipe e especialista do
domínio definem o modelo.
DDD
século 18 –
china
![Page 6: DDD – Domain Driven Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/55731f55d8b42aae7b8b4bce/html5/thumbnails/6.jpg)
Como ligar o modelo a
implementação?
DDD
![Page 7: DDD – Domain Driven Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/55731f55d8b42aae7b8b4bce/html5/thumbnails/7.jpg)
OOP e outras cositas mas!!
DDD
![Page 8: DDD – Domain Driven Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/55731f55d8b42aae7b8b4bce/html5/thumbnails/8.jpg)
Linguagem Onipresente (Ubíqua)
DDD
![Page 9: DDD – Domain Driven Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/55731f55d8b42aae7b8b4bce/html5/thumbnails/9.jpg)
Entidades
DDD
- São objetos que
possuem :
• identidade para o
domínio
• representação
distintas
![Page 10: DDD – Domain Driven Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/55731f55d8b42aae7b8b4bce/html5/thumbnails/10.jpg)
Objetos de Valor* Não possui identidade para o domínio
* Suas propriedades o identificam
* São imutáveis
DDD
![Page 11: DDD – Domain Driven Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/55731f55d8b42aae7b8b4bce/html5/thumbnails/11.jpg)
Agregações
* Grupo de objetos
* Um objeto filho não tem o menor sentido sem o
seu “pai”
* Agregações definem fronteiras claras (raiz )
* Toda alteração de um agregado passam pela raiz
* Toda referência de um agregado passa pela raiz
* Quando a raiz do é excluída seus agregado
também são
* Regras de negócio são garantidas na raiz e nos
agregados
DDD
![Page 12: DDD – Domain Driven Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/55731f55d8b42aae7b8b4bce/html5/thumbnails/12.jpg)
Serviços* Operações importantes que não se encaixam em
entidades e objetos de valores
* Necessidade de trabalhar com mais de uma
entidade
DDD
![Page 13: DDD – Domain Driven Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/55731f55d8b42aae7b8b4bce/html5/thumbnails/13.jpg)
Repositórios* Guardar e recuperar os objetos
* Não tem regra de negócio
DDD
![Page 14: DDD – Domain Driven Design](https://reader036.vdocuments.site/reader036/viewer/2022081511/55731f55d8b42aae7b8b4bce/html5/thumbnails/14.jpg)
Perguntas?
@jonatassaraiva
jonatassaraiva.net