Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementação Pontos Na Carteira Service #16

Closed
wants to merge 1 commit into from

Conversation

hmaximo
Copy link

@hmaximo hmaximo commented Jan 5, 2021

Topei o seu desafio de tentar criar o serviço de verificação de Pontos na Carteira. Se puder, me dê um feedback do que está certo ou não. Acabou que eu nem consegui testar, porque deu um problema de versão entre os pacotes instalados que eu não consegui resolver.

Uma pergunta que eu queria fazer para você é: Por que devemos criar a classe modelo e a classe DTO, que são exatamente iguais, nas duas camadas de aplicação (Presentation, Application)? A única diferença que percebi foi o Data Annotations Serializable na classe DebitosVeiculos (o que acabei reproduzindo em PontosCarteira, já que imaginei que a mesma transferência de objeto poderia acontecer com ela).

Copy link
Owner

@fructuoso fructuoso left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Helena, boa noite.

Muito obrigado pelo seu PR.

Vamos começar pelas suas perguntas:

  • Sim temos duas classes aparentemente iguais (o que realmente causa espanto) porém elas tem responsabilidades distintas, uma serve como contrato para a nossa API, a outra como contrato para o nosso serviço. Em alguns projetos é comum ver a mesma classe sendo utilizada nos dois pontos de extremidade, porém isso gera um acoplamento de código, onde se você eventualmente precisar de um parametro a mais no seu serviço, automaticamente esse parametro a mais será cobrado por sua API.
  • Sobre o atributo, em um dos exemplos eu comento sobre o uso do cache para evitar o acesso ao serviço de forma desnecessária, para esta implementação de cache nós precisamos serializar o objeto, por isso do atributo.

Sobre o código, eu vi que você reproduziu uma Factory igual a que eu fiz na aula, mas eu não achei o ponto onde você registra a implementação para que o Factory efetivamente funcione.

Te adicionei no LinkedIn, me passa depois os problemas que você teve com os testes.

Desculpas pela demora na resposta, espero poder contribuir mais com os seus estudos.

@fructuoso fructuoso closed this Jan 15, 2021
@hmaximo
Copy link
Author

hmaximo commented Jan 15, 2021

Então, Vitor! Desculpe-me também pela demora. Não consegui mexer nesse projeto nessa semana. Com sorte, eu vejo no domingo.

Então... eu conhecia as classes DTO dos cursos de Java que fiz antes, mas geralmente a classe DTO conversava com a classe entidade e entregava o dado de maneira otimizada. Mas acho que tenho que ver muitos exemplos ainda para poder entender plenamente o que fazemos com uma e o que fazemos com outra. Obrigada pela contribuição.

Você tem razão, não registrei a Factory. Acho que, como não consegui fazer os testes, nem me dei conta desse problema. Sobre isso, aliás, a dificuldade foi que eu clonei o projeto e tive uma inconsistência entre versões do AspNet Core. Não sei se foi exatamente por isso, mas como eu já tinha feito uns outros projetos do bootcamp com a versão 5.0, o JetBrains Rider não conseguia rodar testes por causa de alguma incompatibilidade. Eu tentei instalar os pacotes das versões anteriores, mas não tive sucesso.

Mais tarde, fazendo outro projeto que deu o mesmo problema resolvi buscar mais ajuda na internet. Aí vi isso aqui: fsbolero/Bolero#118. Só depois disso acabei conseguindo rodar a aplicação.

Ainda vou dar atenção a ela. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants