Pular para o conteúdo

Trilha de estudo

Trilha Design Orientado ao Domínio: tudo o que estudar, tópico por tópico

Avaliação abrangente de Domain-Driven Design cobrindo linguagem ubíqua, contextos delimitados, padrões táticos, modelagem de domínio, event sourcing, CQRS e práticas avançadas de DDD em microsserviços.

Resposta curta

Para aprender Design Orientado ao Domínio, percorra 6 módulos e 26 tópicos na ordem em que um apoia o próximo. Comece por Fundamentos de DDD e siga para Design Estratégico e Padrões Táticos. Use o mapa como checklist, ou meça seu nível e estude só o que falta.

6
módulos
26
tópicos
60
min para avaliar

O que você vai estudar

Os tópicos estão agrupados por módulo. Abra um para ver os objetivos e os conceitos-chave.

1 · Fundamentos de DDD5 tópicos
  • Linguagem Ubíqua

    A linguagem compartilhada entre desenvolvedores e especialistas de domínio que permeia código e conversas.

    Objetivos

    • Construir um glossário de linguagem ubíqua com especialistas de domínio
    • Identificar deriva de linguagem entre código e conversa de negócios

    Conceitos-chave

    • linguagem ubíqua
    • especialista de domínio
    • glossário de domínio
    • deriva de linguagem
    • modelo de linguagem
    • evolução da linguagem
    • código expressivo
  • Contextos Delimitados

    Fronteiras explícitas dentro das quais um modelo de domínio é aplicado de forma consistente.

    Objetivos

    • Identificar contextos delimitados em um sistema legado de grandes proporções
    • Desenhar as fronteiras entre dois contextos delimitados que compartilham um conceito

    Conceitos-chave

    • contexto delimitado
    • fronteira explícita
    • modelo de contexto
    • linguagem ubíqua por contexto
    • integração entre contextos
    • mapa de contextos
    • independência de implantação
  • Subdomínios

    Particionamento do espaço do problema em domínio central, subdomínios de suporte e subdomínios genéricos.

    Objetivos

    • Classificar subdomínios de um sistema de e-commerce em central, suporte e genérico
    • Justificar decisões de build vs buy com base na classificação de subdomínio

    Conceitos-chave

    • domínio central
    • subdomínio de suporte
    • subdomínio genérico
    • espaço do problema
    • espaço da solução
    • investimento estratégico
    • solução pronta
  • Pensamento Estratégico em DDD

    Aplicar DDD estratégico para alinhar decisões de software a vantagens competitivas de negócio.

    Objetivos

    • Identificar o domínio central de uma startup de fintech
    • Usar subdomínios para priorizar onde investir modelagem rica de domínio

    Conceitos-chave

    • vantagem competitiva
    • diferenciação central
    • investimento estratégico
    • complexidade acidental vs essencial
    • alinhamento time-contexto
    • mapa de capacidades
    • priorização de domínio
  • Domain Storytelling

    Técnica colaborativa para capturar conhecimento de domínio através de narrativas ilustradas.

    Objetivos

    • Conduzir uma sessão de domain storytelling para um fluxo de checkout
    • Identificar bounded contexts a partir de pictogramas de domain storytelling

    Conceitos-chave

    • domain storytelling
    • ator de domínio
    • objeto de trabalho
    • atividade de domínio
    • pictograma
    • foco puro vs digitalizado
    • granularidade da história
2 · Design Estratégico5 tópicos
  • Padrões de Mapeamento de Contextos

    Padrões que descrevem os relacionamentos e formas de integração entre contextos delimitados.

    Objetivos

    • Selecionar o padrão de mapeamento correto para dois contextos com dinâmicas de equipe distintas
    • Implementar uma camada anticorrupção para proteger o domínio central de um sistema legado

    Conceitos-chave

    • camada anticorrupção
    • serviço de host aberto
    • linguagem publicada
    • conformista
    • parceria
    • núcleo compartilhado
    • cliente-fornecedor
  • Event Storming de Grande Escala

    Workshop colaborativo para modelar domínios complexos descobrindo eventos, comandos e agregados.

    Objetivos

    • Facilitar um event storming de grande escala para um domínio de pedidos
    • Identificar hotspots e agregados candidatos a partir de um mapa de event storming

    Conceitos-chave

    • evento de domínio
    • comando
    • agregado
    • política
    • ator externo
    • hotspot
    • fluxo de evento
  • Relacionamentos Cliente-Fornecedor

    Padrão onde um contexto upstream influencia o downstream, com dinâmicas de poder explícitas.

    Objetivos

    • Identificar relacionamentos cliente-fornecedor em um mapa de contextos corporativo
    • Projetar um protocolo de testes de aceitação entre contextos upstream e downstream

    Conceitos-chave

    • upstream
    • downstream
    • fornecedor
    • cliente
    • planejamento colaborativo
    • testes de aceitação
    • poder de negociação
  • Serviço de Host Aberto e Linguagem Publicada

    Exposição de funcionalidade de um contexto via protocolo bem definido e documentado.

    Objetivos

    • Projetar um Serviço de Host Aberto para um contexto de pagamentos usado por três equipes
    • Distinguir quando usar OHS vs Camada Anticorrupção na integração entre contextos

    Conceitos-chave

    • serviço de host aberto
    • linguagem publicada
    • API pública
    • múltiplos consumidores
    • estabilidade de protocolo
    • versionamento
    • documentação de API
  • Destilação do Domínio Central

    Identificar e isolar o domínio central que diferencia o negócio para concentrar esforços de modelagem.

    Objetivos

    • Escrever uma declaração de posição central para um sistema de recomendação
    • Separar o mecanismo genérico do domínio central em um contexto de logística

    Conceitos-chave

    • domínio central
    • declaração de posição central
    • mecanismo genérico
    • subdomínio central segregado
    • mapa de domínio destacado
    • visão de domínio
    • investimento em modelagem
3 · Padrões Táticos6 tópicos
  • Entidades e Objetos de Valor

    Distinção entre objetos com identidade única (entidades) e objetos definidos por seus atributos (objetos de valor).

    Objetivos

    • Classificar conceitos de domínio como entidade ou objeto de valor com justificativa
    • Implementar um objeto de valor Dinheiro imutável com igualdade semântica

    Conceitos-chave

    • entidade
    • objeto de valor
    • identidade de entidade
    • imutabilidade de objeto de valor
    • igualdade por valor
    • igualdade por identidade
    • substituição de objeto de valor
  • Agregados e Raízes de Agregado

    Clusters de entidades e objetos de valor tratados como uma unidade de consistência com uma raiz de acesso.

    Objetivos

    • Identificar a raiz de agregado correta para um cluster de objetos de domínio
    • Aplicar a regra de uma transação por agregado em um cenário de pedido com itens de linha

    Conceitos-chave

    • agregado
    • raiz de agregado
    • fronteira de agregado
    • invariante de consistência
    • referência por ID
    • uma transação por agregado
    • proteção de invariante
  • Eventos de Domínio

    Fatos imutáveis que representam algo significativo que ocorreu no domínio.

    Objetivos

    • Nomear eventos de domínio seguindo a convenção de tempo passado do DDD
    • Publicar um evento de domínio após uma transição de estado de agregado

    Conceitos-chave

    • evento de domínio
    • imutabilidade de evento
    • nomeação de evento
    • publicação de evento
    • manipulador de evento
    • consistência eventual via eventos
    • event sourcing
  • Serviços de Domínio

    Operações de domínio que não pertencem naturalmente a nenhuma entidade ou objeto de valor.

    Objetivos

    • Identificar quando uma operação de domínio pertence a um serviço de domínio vs entidade
    • Nomear e posicionar corretamente um serviço de domínio em um modelo em camadas

    Conceitos-chave

    • serviço de domínio
    • operação sem estado
    • orquestração de domínio
    • coordenação entre agregados
    • nome baseado em domínio
    • evitar engorda de serviço
    • distinção camada de aplicação vs domínio
  • Repositórios

    Abstração de coleção para persistir e recuperar agregados, ocultando detalhes de armazenamento.

    Objetivos

    • Projetar uma interface de repositório que expresse consultas orientadas ao domínio
    • Explicar por que repositórios são definidos por raiz de agregado, não por entidade

    Conceitos-chave

    • repositório
    • abstração de coleção
    • ignorância de persistência
    • repositório por raiz de agregado
    • métodos de consulta orientados ao domínio
    • interface de repositório
    • unidade de trabalho
  • Fábricas

    Encapsulamento de lógica de criação complexa para garantir que agregados sejam criados em estado válido.

    Objetivos

    • Implementar uma fábrica que enforce invariantes de domínio na criação de agregado
    • Distinguir fábrica de criação de fábrica de reconstituição

    Conceitos-chave

    • método fábrica
    • objeto fábrica
    • invariante de criação
    • criação encapsulada
    • fábrica de reconstituição
    • montagem complexa
    • criação de agregado
4 · Modelagem de Domínio4 tópicos
  • Princípios de Design de Agregados

    Heurísticas para dimensionar e definir fronteiras de agregados que protegem invariantes com custo mínimo.

    Objetivos

    • Aplicar heurísticas de tamanho de agregado para dividir um agregado grande
    • Justificar por que dois agregados devem ser separados mesmo compartilhando dados

    Conceitos-chave

    • tamanho de agregado
    • uma transação por agregado
    • heurísticas de fronteira
    • pequenos agregados
    • consistência eventual entre agregados
    • referência por ID
    • raiz de proteção de invariante
  • Aplicação de Invariantes

    Garantir que o modelo de domínio sempre esteja em um estado válido fazendo valer invariantes no ponto de mudança.

    Objetivos

    • Implementar cláusulas de guarda em um método de agregado para aplicar invariantes de negócio
    • Debater modelo sempre válido vs modelo defer-validation com trade-offs

    Conceitos-chave

    • invariante de domínio
    • modelo sempre válido
    • cláusula de guarda
    • exceção de domínio
    • validação adiada vs imediata
    • proteção de invariante de agregado
    • violação de regra de negócio
  • Padrão Specification

    Predicados de domínio combináveis que encapsulam lógica de consulta e regras de negócio.

    Objetivos

    • Implementar uma Specification para filtrar pedidos elegíveis a desconto
    • Compor especificações usando And/Or/Not para regras de negócio complexas

    Conceitos-chave

    • especificação
    • predicado composto
    • AndSpecification
    • OrSpecification
    • NotSpecification
    • consulta de domínio
    • specification por repositório
  • Modelo Anêmico vs Modelo Rico

    Contraste entre modelos de dados sem comportamento (anêmicos) e modelos com lógica de domínio encapsulada (ricos).

    Objetivos

    • Identificar um modelo anêmico e migrar comportamento de volta ao domínio
    • Explicar por que 'tell don't ask' é a regra de ouro do modelo rico

    Conceitos-chave

    • modelo de domínio anêmico
    • modelo de domínio rico
    • tell don't ask
    • comportamento em objeto de domínio
    • lógica em camada de serviço
    • encapsulamento
    • violação de encapsulamento
5 · Event Sourcing e CQRS4 tópicos
  • Fundamentos de Event Sourcing

    Armazenar estado como uma sequência de eventos imutáveis em vez de estado atual.

    Objetivos

    • Derivar o estado atual de um agregado a partir de uma sequência de eventos
    • Implementar uma estratégia de snapshot para evitar replay de milhares de eventos

    Conceitos-chave

    • event sourcing
    • event store append-only
    • estado derivado de eventos
    • replay de eventos
    • versionamento de eventos
    • evolução de schema de evento
    • snapshot
  • Padrão CQRS

    Separação do lado de escrita (comandos) do lado de leitura (consultas) para otimizar independentemente.

    Objetivos

    • Projetar um sistema CQRS para um catálogo de produtos com alta carga de leitura
    • Explicar quando CQRS é e quando NÃO é uma boa escolha

    Conceitos-chave

    • CQRS
    • lado de comando
    • lado de consulta
    • modelo de leitura
    • manipulador de comando
    • manipulador de consulta
    • bancos de dados separados leitura/escrita
    • consistência eventual entre lados
  • Event Store e Projeções

    Implementação de armazenamento de eventos e criação de projeções a partir de streams de eventos.

    Objetivos

    • Projetar um esquema de event store com versionamento e detecção de conflitos
    • Construir uma projeção de modelo de leitura a partir de um stream de eventos de pedido

    Conceitos-chave

    • event store
    • stream de eventos
    • bloqueio otimista com versão
    • construção de projeção
    • replay de event store
    • EventStoreDB
    • stream global vs stream por agregado
  • Consistência Eventual em DDD

    Gerenciar a janela de inconsistência entre eventos publicados e modelos de leitura atualizados.

    Objetivos

    • Projetar uma estratégia UX para janelas de consistência eventual em checkout
    • Implementar leitura de seus próprios writes usando cache de lado do cliente

    Conceitos-chave

    • consistência eventual
    • lag de modelo de leitura
    • eventos compensatórios
    • consistência eventual em saga
    • consistência percebida pelo usuário
    • janela de consistência
    • leitura de seus próprios writes
6 · DDD na Prática2 tópicos
  • DDD com Microsserviços

    Aplicar princípios de DDD para guiar decomposição e integração de microsserviços.

    Objetivos

    • Mapear contextos delimitados para fronteiras de microsserviços em um sistema de e-commerce
    • Projetar integração entre serviços usando eventos de domínio e CAL

    Conceitos-chave

    • um contexto por serviço
    • riscos de núcleo compartilhado
    • CAL na fronteira do serviço
    • integração orientada a eventos
    • saga entre serviços
    • linguagem publicada
    • autonomia de serviço
  • Antipadrões de DDD e Refatoração

    Reconhecer e corrigir os antipadrões mais comuns que violam princípios de DDD.

    Objetivos

    • Identificar três antipadrões de DDD em uma base de código existente
    • Propor um plano de refatoração para migrar de transaction scripts para modelo de domínio rico

    Conceitos-chave

    • deus agregado
    • modelo de domínio anêmico
    • antipadrão Smart UI
    • transaction script
    • feature envy
    • lógica de domínio em serviço de aplicação
    • anemia orientada a serviço

Níveis: Júnior, Pleno e Sênior

Explique com suas palavras

Corrigido por IA · sem cadastro · 1 pergunta

Sem alternativas para chutar: você escreve, a IA corrige com a rubrica do tópico e diz em que nível sua resposta está.

0 / 600

Já estuda Design Orientado ao Domínio?

A avaliação mede tópico por tópico, e o plano pula o que você já sabe.

Aberto para ler. A conta só é necessária para ser medido.

Perguntas frequentes

Por onde começar a estudar Design Orientado ao Domínio?

Comece por Fundamentos de DDD: Linguagem Ubíqua, Contextos Delimitados e Subdomínios. O mapa ordena os tópicos pelo que depende de quê, então cada um prepara o seguinte.

Quanto tempo leva uma avaliação completa de Design Orientado ao Domínio?

Uma avaliação completa desta trilha leva cerca de 60 minutos. O tempo de estudo depende de onde você começa; o diagnóstico mostra quais tópicos você pode pular.

Preciso de conta para usar esta página?

Não. O mapa, os objetivos e os conceitos-chave são abertos. A conta só é necessária para ser medido, ver seu gap por tópico e receber um plano.