Skip to content

napoleao.coelho#192

Open
napocoelho wants to merge 2 commits intoApiki:masterfrom
napocoelho:napoleao.coelho
Open

napoleao.coelho#192
napocoelho wants to merge 2 commits intoApiki:masterfrom
napocoelho:napoleao.coelho

Conversation

@napocoelho
Copy link

O desafio em si é simples, mas achei interessante adicionar uma estrutura mais próxima daquilo que é hoje considerada uma arquitetura de sistemas moderna e que promove um padrão de alto nível, com as classes bem desacopladas, seja pela utilização da injeção de dependência, seja pelo uso correto das responsabilidades de cada classe, possibilitando o isolamento e um fácil entendimento das regras de negócio e, além disso, facilitando a criação de testes. Devo ter deixado coisas passarem despercebidas, mas no geral é isso daí.

Além disso, devido ao longo tempo sem trabalhar com PHP e por não saber como a empresa costuma estruturar seus projetos ou quais libs e frameworks utilizam, foquei na arquitetura da aplicação.

Algumas obs.:

  • a factory do DTO de entrada (ExchangeRequestFactory) ficou meio exagerada, mas permitiu uma boa clareza no código e uma boa separação de responsabilidade. Mas na prática, eu utilizaria algum recurso de conversão automática no mecanismo que chama os Controllers para preencher a ExchangeConversionRequest;
  • no Repositório, a ideia foi fazer da forma mais simples possível, apenas para simular uma situação. Mas numa aplicação real, as informações referentes ao tipo da moeda deveriam ser persistidos num banco de dados;
  • no retorno do controller, adotei o Result Pattern para uniformizar os retornos de todas as Controllers.

…roller, UseCase, serviço de domínio, uma classe Result que segue o Result Pattern e retornos conforme o teste proposto
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.

1 participant