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

Uso excessivo de DTOs

(Estou voltando nessa atividade após terminar o curso)

Durante o percorrer do curso, foram criados diversos DTOs. Isso não pode ser um risco na manutenção de código? Entendo que é perigoso mandar objetos p/ o client que representam nossa entidade por motivos de segurança (vulgo exemplo clássico de usuário e senha), entretanto, imagine que para cada entidade nós iremos utilizar a mesma quantidade de DTO... Isso não fica um pouco... ruim?

2 respostas
solução!

Oi Arthur,

Toda solução tem seus tradeoffs(vantagens e desvantagens), cabendo avaliar quando faz sentido usar determinada solução de acordo com seus prós e contras.

No caso dos DTOs, conforme demonstrado no curso, estas são as principais considerações:

Sem DTO:

  • Precisa receber e enviar entidades jpa serializadas pela API;
  • Abre brecha para ataques do tipo Mass Assignment;
  • Abre brecha para exposição de dados sensíveis;
  • Não teremos flexibilidade para múltiplas representações da mesma entidade;
  • Provavelmente as entidades ficarão "poluídas" com anotações referentes a serialização(ex: @JsonIgnore)
  • Mais fácil e simples do que utilizar DTO's.

Com DTO:

  • Mais flexibilidade, pois podemos ter múltiplas representações(json distintos);
  • Mais seguro e menos dados trafegando pela rede(evita expor dados sensíveis/desnecessários);
  • Classes de domínio mais "poluídas" com detalhes de bibliotecas /frameworks;
  • Mais trabalhoso, pois precisa das classes DTOs(podemos utilizar alguma biblioteca, como o modelmapper, para simplificar a conversão entidade<->dto).

Bons estudos!

Rodrigo, bom dia! Muito obrigado pela sua resposta. Lembrando, não é uma crítica, é apenas uma dúvida que surgiu conforme o decorrer do curso.

Obrigado mais uma vez!

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