Dominando Domain-Driven Design (DDD)
Este curso conduz você do básico ao avançado em Domain-Driven Design, unindo design estratégico (domínios, subdomínios, bounded contexts, linguagem ubíqua e context maps) ao design tático (entities, value objects, aggregates, services, repositories, events e factories), finalizando com um hands-on completo comparando modelo anêmico e modelo rico em um caso de uso real.
O que você vai aprender
- Fundamentos do DDD: propósito, quando aplicar e diferenças entre abordagens de desenvolvimento.
- Design Estratégico: Domain e Sub-domains, Bounded Context e seus limites.
- Linguagem Ubíqua: como desenvolver um vocabulário compartilhado com especialistas do domínio.
- Context Maps e relacionamentos entre contextos (parcerias, conformidade, anticorrupção, etc.).
- Design Tático: Entities, Value Objects, Aggregates e regras de consistência.
- Serviços de Domínio e de Aplicação: responsabilidades e orquestração de casos de uso.
- Repositórios, Eventos e Fábricas: persistência orientada ao domínio e integração via eventos.
- Destilando o Domínio: identificar o core domain e priorizar o que dá vantagem competitiva.
Metodologia e prática
Cada módulo combina teoria objetiva com exemplos. No Hands-on, você implementa um caso de uso, compara Modelo Anêmico vs Modelo Rico e consolida os conceitos com decisões de modelagem, limites de agregados e aplicação da linguagem ubíqua no código.
Para quem é este curso?
- Desenvolvedores e arquitetos que desejam criar sistemas evolutivos e orientados ao domínio.
- Times que precisam alinhar negócio e tecnologia com uma linguagem comum.
Ao final, você será capaz de:
- Mapear domínios, definir bounded contexts e criar context maps eficazes.
- Modelar Entities, Value Objects e Aggregates com regras de consistência claras.
- Projetar serviços de domínio e aplicação, repositórios e eventos alinhados ao negócio.
- Aplicar DDD no dia a dia, evitando armadilhas do modelo anêmico e adotando um modelo rico.
Confira as aulas
Introdução
Apresentação pessoal e Objetivos do Curso (41s)
Orientações gerais (38s)
Iniciando com DDD
Abordagens de desenvolvimento de software (1m 39s)
Conceitos
Design Estratégico
Bounded context (10m 50s)
Ubiquitous Language (5m 49s)
Desenvolvendo a linguagem Ubíqua (2m 36s)
Bounded context & Ubiquitous Language (2m 9s)
Destilando um Domínio (7m 45s)
Design Tático
Application Services (4m 44s)
Factories, Modules, etc (1m 24s)
Hands-on
Agradecimentos
Introdução
Apresentação pessoal e Objetivos do Curso (41s)
Orientações gerais (38s)
Iniciando com DDD
Abordagens de desenvolvimento de software (1m 39s)
Conceitos
Design Estratégico
Bounded context (10m 50s)
Ubiquitous Language (5m 49s)
Desenvolvendo a linguagem Ubíqua (2m 36s)
Bounded context & Ubiquitous Language (2m 9s)
Destilando um Domínio (7m 45s)
Design Tático
Application Services (4m 44s)
Factories, Modules, etc (1m 24s)
Hands-on
Agradecimentos
Fique por dentroPerguntas frequentes
O curso aborda conceitos teóricos e práticos relacionados ao assunto do curso, que podem variar de acordo com a área de estudo. Para mais informações específicas, consulte a ementa do curso.
O aluno tem 1 ano de acesso ao curso. Durante esse período, o aluno pode acessar o material do curso a qualquer momento e em qualquer dispositivo com acesso à internet.
Sim, o curso oferece exercícios e atividades práticas para ajudar os alunos a consolidar e aplicar os conceitos teóricos aprendidos durante o curso.
Sim, os alunos têm acesso a um fórum ou Whatsapp de suporte onde podem fazer perguntas e obter ajuda do instrutor ou da equipe de suporte técnico. Além disso temos encontros mensais, o aluno será notificado para saber quando é o próximo encontro.
Um certificado é emitido após a conclusão de um curso ou treinamento, que comprova que o aluno participou do curso e concluiu com sucesso. O certificado é emitido pela repiper assim que o aluno finaliza o curso e inclui o nome do aluno, o nome do curso e a carga horária.
Para acessar o curso, o aluno precisa ter um dispositivo com conexão à internet e um navegador web atualizado. Alguns cursos têm requisitos adicionais, como software específico ou um determinado sistema operacional. Esses requisitos serão especificados na descrição do curso.
Sim, o curso é projetado para ser acessado a qualquer momento, o que significa que os alunos podem fazer o curso no seu próprio ritmo. No entanto, é importante lembrar que a prova de certificação só pode ser feita uma única vez, por isso recomendamos que faça ela o quanto antes enquanto os conceitos aprendidos no curso estão frescos.