Uma equipe de desenvolvimento de sistemas de uma autarquia
federal está modelando o módulo de concessão de licenças
ambientais utilizando Domain-Driven Design (DDD).
O domínio possui as classes
ProcessoLicenciamento, ParecerTecnico, Vistoria e DocumentoObrigatorio.
O arquiteto definiu que a classe ProcessoLicenciamento atuará como Aggregate Root. Durante uma revisão de código, constatou-se que um desenvolvedor criou um repositório exclusivo para a classe Vistoria, permitindo que sistemas externos alterem o status de uma vistoria diretamente no banco de dados, sem passar pelas regras de validação contidas em ProcessoLicenciamento.
À luz dos padrões táticos do DDD, a abordagem do desenvolvedor está incorreta porque viola o seguinte princípio:
O domínio possui as classes
ProcessoLicenciamento, ParecerTecnico, Vistoria e DocumentoObrigatorio.
O arquiteto definiu que a classe ProcessoLicenciamento atuará como Aggregate Root. Durante uma revisão de código, constatou-se que um desenvolvedor criou um repositório exclusivo para a classe Vistoria, permitindo que sistemas externos alterem o status de uma vistoria diretamente no banco de dados, sem passar pelas regras de validação contidas em ProcessoLicenciamento.
À luz dos padrões táticos do DDD, a abordagem do desenvolvedor está incorreta porque viola o seguinte princípio: