Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Projeto WEB e o Tell, Don't Ask

Pessoal,

Normalmente em um projeto web utilizamos uma camada de controle que recebe as requisições, passamos para uma camada de negócios que valida as regras de negócios e por fim uma camada para abstração ao banco de dados.

Normalmente utilizamos o JPA para facilitar nossas vidas.

Então o Tell, Don't Ask, deve se aplicado na camada de negócios que valida a regra de negócios, certo? Ou colocaríamos esse Tell, Don't Ask na classe de entidade do JPA?

Desde já obrigado.

3 respostas

Ola, Daniel !

Assunto polemico, rs...

Na verdade tudo depende... depende de como é seu negocio, depende se é um legado que deve ser alterado o MÍNIMO possível, depende se for uma aplicação nova.

E ainda depende do frameWork que esta usando.

EX.: No caso de estar usando JSF + JPA + BeanValidator. É possível validar se um campo foi preenchido na tela ao clicar no botao no seu XHTML. Repare que isso por baixo dos panos é um tell dont ask feito pelo frameWork.

No caso que você trouxe como exemplo, você pode ter algumas regras nos seus modelos nas anotações e pode pensar em criar um lugar para manter mais regras de negócios por exemplo uma classe UsuarioService e manter seu controller bem enxuto.

Somente frisando, nesse caso sua classe UsuarioService NÃO DEVE SER UM LINGUIÇÃO, temos que pensar sempre em quebrar em trechos de codigo com uma unica responsabilidade, ou seja, sua classe UsuarioService poderia ter outras varias pequenas classes responsaveis pelas validacoes e essas pequenas classes trabalharem da forma TELL DONT ASK.

Ajudei ? Clareou mais as ideias?

Abraço e bons estudos....

solução!

Ola, Daniel !

Caso tenha tirado sua dúvida, poderia fechar esse fórum, por gentileza ?

Abraço!

Fala Cristiano!

Ajudou sim, clareou! Obrigado por responder.

Abs

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software