Solutions Architecture, Software Development, Machine Learning and Embedded Ai.

Um pouco de conceitos sobre DDD – Parte VI de VII

Na série de recortes de trechos de trabalhos acadêmicos que fiz no passado sobre DDD (Domain-Driven Design)... aqui vai a parte 6 contendo trechos do capítulo 5 de meus resumos sobre DDD. Geralmente, os padrões táticos do DDD são os mais conhecidos na comunidade de Desenvolvimento de Software, por isso, vale lembrar que também existem as técnicas de modelagem estratégica do DDD.

>

5.4 Eventos de Domínio

Vernon (2013) ressalta que no trabalho original de Evans (2003) não há definição formal para Eventos de Domínio, pois este padrão foi introduzido posteriormente no DDD.

No entando, quando ocorrer algum evento importante para os especialista do domínio (Evans, 2011) este evento em específico deve ser modelado como um Evento de Domínio e possuir uma identificação única (Vernon, 2013).

Outras possibilidades de uso e aplicação dos Eventos de Domínio podem ser consultadas na obra escrita por Vernon (2013).

5.5 Serviço

Um serviço representa uma operação que não armazena estado e que executa uma tarefa específica do modelo de domínio (Vernon, 2013).

Quando uma operação (ou método) não se encaixa naturalmente como responsabilidade de nenhuma entidade em específico, Evans (2011) recomenda a criação de um interface declarada e implementada como um serviço. O contrato de operações deste serviço também deve respeitar a linguagem ubíqua corrente (Evans, 2011).

5.6 Módulo

Para manter uma organização coerente e de baixo acoplamento entre as classes de objetos do domínio é utilizado o conceito de Módulo, o qual representa um recipiente de conceitos similares agrupados dentro do contexto do DDD (Vernon, 2013). É importante usar nomes de Módulo que estejam em sincronia com a linguagem ubíqua (Vernon, 2013).

Vernon (2013) destaca ainda que o conceito de Módulo também é similar aos encontrados na linguagem de programação C# (namespace) e Java (packages).

...a última parte desta série de postagens será completada no próximo artigo!

Referências

Vernon, 2013: Vernon, Vaughn , Implementing Domain-Driven Design, 2013

Evans, 2003: Evans, Eric , Domain-Driven Design: Tackling the Complexity in the Heart of Software, 2003

Evans, 2011: Evans, Eric, Domain-Driven Design Reference, 2011