Skip to content

kaiogotyacode/valinor

 
 

Repository files navigation

Valinor • Code Challenge 👨‍💻

Apresentação do Projeto 🎈

O Valinor é um desafio de código proposto pela Field Control, nele, você pode realizar consultas de repositórios do GitHub, exibindo seus principais detalhes em tela.

Para o desenvolvimento do projeto, foi utilizado a API do GitHub disponibilizada gratuitamente para a comunidade. Para visualizar o projeto que realizei, acesse este link.


Ferramentas Utilizadas ✨


Por quê tecnologia X e não Y? 🧩

  • Optei por Angular pois entre Blazor (.NET) e o Angular, seria melhor já aplicar um intesivão para evoluir meu conhecimento no Framework que é utilizado na Field Control.

  • Na parte de estilização optei por Tailwind pois daria um visual mais moderno para a aplicação, já o Bootstrap traz um visual mais boring, uma vez que seu modelo visual já é manjado.

  • Nos testes unitários eu utilizei o Jasmine e Karma pois foram as ferramentas que mais tive acesso à documentação para aplicar de forma prática e reaproveitar meu o conhecimento de Testes Unitários que reaproveitei do .NET no xUnit.


Princípios de Engenharia utilizado 👩‍💻

  • Factory Method: No meu SearchComponent trabalhei com FactoryMethod principalmente na função de Pesquisa, deixando o código mais legível numa situação onde há uma regra de negócio um tanto quanto complexa.

  • SOLID: Utilizei o SOLID em todo momento do desenvolvimento, buscando seguir padrões de nomenclaturas e convenções ao longo do desenvolvimento, principalmente no TypeScript (Services, Model, Views).

  • KISS (Keep It Simple, Stupid): Acredito que é um dos princípios que mais bato na tecla quando estou desenvolvendo uma aplicação ou desenrolando uma feature. O de manter um código simples e fácil de ser compreendido por desenvolvedores.

  • DRY (Don't Repeat Yourself): Na ideia de evitar repetição de código, é uma ótima prática evitar situações redundantes que podem ser simplificadas. Um exemplo utilizado na parte de Testes Unitários foi na criação do método createRepository(params[...]).

  • AAA (Arrange/Act/Assert): Nos testes unitários, reaproveitei o conhecimento obtido do .NET e pude desenvolver alguns testes unitários de forma a objetivar os detalhes principais do projeto seguindo boas práticas de organização e padronização para garantir clareza no desenvolvimento.

  • Mobile First: Desde o início do desafio dei uma atenção extra para a responsividade da aplicação. Devido o Tailwind já trabalhar com esse princípio, facilitou no desenrolar do desenvolvimento.


Desafios e Problemas Enfrentados 🐛

Durante o desenvolvimento do VALINOR, enfrentei alguns desafios notáveis:

  • Intensivão de Angular e Tailwind: Como foi minha primeira experiência com o Angular para desenvolver um SPA, tive que separar uma semaninha de estudos intensivos antes de startar esse desafio. O Tailwind foi também uma ferramenta que aproveitei para aplicar nesse meio tempo, porém foi mais fácil de se adaptar, pois tenho um background de CSS avançado, então com a documentação do Tailwind foi super tranquilo.

  • Desenvolvimento da Paginação: Não encontrei uma biblioteca que atendia aos estilos que eu gostaria, então tive que fazer uma paginação do zero, e resolver suas complexidades operacionais.


Pontos de Melhoria - POV 🚀

  • Poderia realizar Testes Unitários adicionais. Foquei apenas nos detalhes principais de exibição para o usuário, então acredito que com algumas horinhas a mais, eu poderia dar um toque mais completo para eles.

De um modo geral, foi um desafio super legal, gostei de verdade de aplicar meus conhecimentos técnicos e foi ótimo ter a percepção que estou em dia pra desenrolar com as tecnologias atuais.


(17) 98138-3539 / 👉 What's App

[email protected]

www.linkedin.com/in/kaio-maciel

About

Code Challenge desenvolvido para Field Control 🚀

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 47.6%
  • HTML 46.8%
  • CSS 4.2%
  • JavaScript 1.4%