https://github.com/williamkoller/fc3-ddd
Curso - Full Cycle 3.0 - Domain-Driven Design
https://github.com/williamkoller/fc3-ddd
ddd ddd-architecture ddd-patterns
Last synced: 9 months ago
JSON representation
Curso - Full Cycle 3.0 - Domain-Driven Design
- Host: GitHub
- URL: https://github.com/williamkoller/fc3-ddd
- Owner: williamkoller
- Created: 2025-01-03T20:15:12.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-06T17:11:40.000Z (about 1 year ago)
- Last Synced: 2025-03-30T08:02:18.151Z (9 months ago)
- Topics: ddd, ddd-architecture, ddd-patterns
- Homepage:
- Size: 97.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Full Cycle 3.0
## Domain-Driven Design
## O que é DDD?
- É uma forma de desenvolver software com foco no coração da aplicação - o que chamamos
de domínio - tendo o objetivo de entender regras, processos e complexidades,
separando-as assim de outros ponmtos complexos que normalmente são adicionados durante o
processo de desenvolvimento.
## De onde surgiu o DDD?
- Eric evans
- Livro lançado em 2003
- Filosofia
- Exemplos reais
- Patterns
- Comunidade de entusiastas seguindo essa prática
- Lançamento de outros livros
## Softwares Complexos
- DDD é / deve ser aplicado para casos de projetos de softwares complexos
- Grandes projetos possuem mais áreas, muitas regras de negócio, muitos processos
com diferrentes visões em diferentes contextos
- Não há como não utilizar técnicas avançadas em projetos de alta complexidade
- Grande parte da complexidade desse tipo de software não vem da tecnologia, mas sim da
comunicação, separação de contextos, entendimento do negócio por viversos ângulos
- Pessoas
## Como o DDD pode ajudar?
- Entender com profundidade o domínio e subdomínios da aplicação
- Ter uma linguagem universal (linguagem ubíqua) entre todos os envolvidos
- Criar o design estratégico utilizando Bounded Contexts
- Criar um design tático para conseguir mapear e agragar as entidades e objetos de valor da
aplicação, bem como os eventos de domínio
- Clareza do que é complexidade de negócio e complexidade técnica
# Domínio e Subdomínios
# Problema vs Solução
# O que é um contexto delimitado?
- Bounded Contexts
- É uma forma de dividir o domínio em partes menores, delimitando o contexto de cada uma delas.
- Cada Bounded Context é uma parte do domínio que possui sua própria linguagem ubíqua, regras de negócio e processos.
# Contexto é Rei
# Modelagem estratégica / Context Mapping
# Padrões de Context Mapping
- Partnership
- Shared Kernel
- Customer-Supplier Development
- Conformist
- Anticorruption-layer
- Open host service
- Publish language
- Separate ways
- Big Ball and Mud
- [ddd-crew/context-mapping](https://github.com/ddd-crew/context-mapping)