2
respostas

[Dúvida] utilizar biblioteca externa para realizar validação de campos simples diretamente na entidade

Posso utilizar uma biblioteca externa para realizar validação de campos simples diretamente na entidade, desde que a dependência seja invertida e a entidade dependa apenas de uma interface (abstração) em vez da classe concreta da biblioteca? Ainda assim, isso causaria acoplamento ou dependência, e estaria alinhado com os princípios da Clean Architecture?

2 respostas

Olá Antonio. Tudo bem?

Sim, você pode utilizar uma biblioteca externa para realizar validações, desde que siga o princípio da inversão de dependência. Isso significa que sua entidade deve depender de uma abstração (interface) e não da implementação concreta da biblioteca. Dessa forma, você reduz o acoplamento direto com a biblioteca externa.

Ao criar uma interface para a validação, você pode implementar essa interface com a biblioteca externa em uma camada mais externa da aplicação, mantendo a entidade livre de dependências concretas. Isso está alinhado com os princípios da Clean Architecture, pois permite que você substitua a implementação da validação sem alterar a entidade em si.

Por exemplo, você poderia ter uma interface ValidadorInterface e uma implementação ValidadorBibliotecaExterna que utiliza a biblioteca de validação. A entidade dependeria apenas de ValidadorInterface, e a implementação concreta seria injetada em tempo de execução.

Essa abordagem minimiza o acoplamento e mantém a flexibilidade e testabilidade do seu código, que são princípios fundamentais da Clean Architecture.

Espero ter ajudado e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!

Se a validação de um campo estar preenchido é uma regra de negócio, ainda faz sentido utilizar uma biblioteca externa encapsulada em uma implementação de infraestrutura para realizar essa validação? Não seria mais adequado manter essa regra diretamente no domínio, já que ela pertence à lógica de negócio, evitando que o domínio precise delegar a execução de algo tão fundamental à infraestrutura?