Não consegui entender bem onde deve ser feito as validações. Exemplo testar se o cpf é valido posso ter um pacote ultis e la um método de verificar se o cpf é valido e no domínio só chamar ele? E outros tipos de validações é no próprio domínio?
Não consegui entender bem onde deve ser feito as validações. Exemplo testar se o cpf é valido posso ter um pacote ultis e la um método de verificar se o cpf é valido e no domínio só chamar ele? E outros tipos de validações é no próprio domínio?
Olá, Breno! Tudo joia?
A ideia principal é manter seu domínio o mais puro possível, sem dependências externas desnecessárias. Vamos lá:
Validações no Domínio: As validações essenciais para a lógica de negócio, como verificar se um CPF é válido, devem ser feitas dentro do domínio. Isso garante que a lógica central do seu aplicativo permanece consistente e qualquer instância de uma entidade está sempre em um estado válido. No exemplo que você deu, validar o CPF no construtor da classe Usuário
é uma boa prática, pois garante que cada instância de Usuário
sempre terá um CPF válido.
Pacote Utils: Você pode ter um pacote de utilitários para centralizar funções comuns que não são específicas do domínio, mas que são reutilizáveis em várias partes do sistema. Por exemplo, uma função para verificar o formato do CPF pode residir em um pacote utils, mas a chamada para essa função deve ser feita dentro do domínio, como no construtor do Usuário
.
Outras Validações: Validações específicas para regras de negócio, como verificar se um usuário tem mais de 18 anos, devem ser feitas no domínio. Isso porque essas regras podem mudar e são específicas para o contexto do seu negócio.
Em resumo, mantenha as validações cruciais para a integridade da sua lógica de negócio dentro do domínio, e use pacotes utilitários para funções auxiliares que podem ser reutilizadas em diferentes contextos.
Espero ter ajudado e bons estudos!