🎯 Saiba o que estudar

Avançado com Treinador a partir de R$ 0,76/dia

Joana é a líder da equipe técnica que está modelando um novo...

Próximas questões
Com base no mesmo assunto
Q3874340 Arquitetura de Software
Joana é a líder da equipe técnica que está modelando um novo produto de software que apoiará um processo de negócio que se estende de um órgão público superior até seus órgãos subordinados. Em face da inexperiência da equipe técnica com o processo de negócio, Joana resolve fazer uso do DDD (Domain Driven Design) aproximando e envolvendo os especialistas de domínio.
Ao aplicar o DDD, Joana está ciente de que:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: A

Fundamento decisivo: O elemento decisivo era identificar a natureza do evento de domínio na DDD: fato já ocorrido no domínio, o que afasta as demais alternativas.

Tema central: Conceitos centrais de DDD
Análise das alternativas
A
Certa
A está correta porque, em DDD, evento de domínio é o registro de uma ocorrência já consumada no domínio. Por essa natureza de fato passado, ele é ordinariamente tratado como imutável, o que corresponde ao conceito clássico de domain event.
B
Errada
Está errada porque, no DDD, o modelo pode precisar ser alterado com o aprendizado do domínio; mudanças no código não são apenas adequações tecnológicas sem impacto no modelo.
C
Errada
Está errada porque o agregado não deve expor referências para cada entidade interna a objetos externos; o acesso externo é tipicamente pela raiz do agregado.
D
Errada
Está errada porque repositório não retorna classes para instanciação externa. No DDD, ele fornece objetos ou agregados de domínio reconstituídos.
E
Errada
Está errada porque Linguagem Onipresente é um vocabulário compartilhado entre domínio e equipe técnica, e não um mecanismo ligado a fábricas encapsuladas por objetos de valor.
Pegadinha da questão
A questão mistura conceitos distintos de DDD para dar aparência técnica às erradas, especialmente ao confundir aggregate root com exposição de entidades internas, repositório com fábrica e Linguagem Onipresente com outros padrões.
Dica para questões semelhantes
  • Se a assertiva tratar de evento de domínio como fato já ocorrido, verifique se a consequência apontada é a imutabilidade ordinária.
  • Em agregados, confirme se o acesso externo está concentrado na raiz, e não espalhado por entidades internas.
  • Em repositórios, procure a ideia de recuperar ou reconstituir objetos de domínio, não de entregar classes para instanciação.
  • Quando aparecer Linguagem Onipresente, associe-a a vocabulário compartilhado do domínio, não a mecanismos estruturais como fábricas ou objetos de valor.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Gabarito (A)

Características dos Eventos de Domínio

Algumas características importantes dos eventos de domínio:

1. Imutáveis: Um evento de domínio representa algo que já aconteceu e, por definição, o passado não pode ser alterado. Portanto, os eventos são imutáveis.

2. Nome descritivo: O nome de um evento de domínio deve ser claro e refletir algo que ocorreu no domínio, como PedidoCriado ou ClienteCadastrado.

3. Propagação de mudanças: Eventos de domínio são usados para notificar outras partes do sistema sobre mudanças de estado. Isso pode incluir sistemas externos ou processos que precisam ser disparados após um evento.

4. Baixo acoplamento: Diferentes serviços ou módulos podem se inscrever para ouvir eventos de domínio e responder a eles sem a necessidade de modificar o código que gera o evento.

Fonte: https://www.linkedin.com/pulse/entendendo-eventos-de-dom%C3%ADnio-ddd-rodrigo-de-oliveira-7hpsf/

Gabarito: A

Alternativa A: "eventos de domínio são ordinariamente imutáveis, já que são um registro de algo no passado". Isso é verdadeiro em DDD. Eventos de domínio representam algo que aconteceu, então são imutáveis. É um conceito comum.

Alternativa B: "mudanças no código representam adequações tecnológicas e não devem suscitar alterações no modelo". Isso é falso. Em DDD, o modelo e o código andam juntos; mudanças no código frequentemente refletem mudanças no modelo. O modelo não é estático.

Alternativa C: "agregados devem prover referências para cada entidade em seu contexto como guias para os objetos externos". Isso não é uma prática recomendada. Agregados devem ter uma raiz que é a única referência para objetos externos; não se deve expor entidades internas diretamente. Prover referências para cada entidade viola encapsulamento.

Alternativa D: "repositórios devem retornar classes ou coleções de classes a serem instanciadas por métodos externos de clientes". Repositórios retornam agregados ou coleções de agregados, mas a instanciação geralmente é interna. A afirmação diz "a serem instanciadas por métodos externos de clientes" - isso parece errado. Repositórios são responsáveis por recuperar e persistir agregados; os clientes não instanciam as classes retornadas, elas já estão prontas.

Alternativa E: "o uso da Linguagem Onipresente (Ubiquitous Language) expressa o modelo como fábricas encapsuladas por objetos de valor". Isso não faz sentido. A Linguagem Onipresente é uma linguagem comum entre especialistas de domínio e desenvolvedores, não tem relação com fábricas ou objetos de valor dessa forma.

Portanto, a correta é a alternativa A.

Fonte: DeepSeek

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo