Giter Site home page Giter Site logo

bc_example's Introduction

Teste de nível - Dev Junior

Obrigado por se candidatar para a vaga de Dev Junior na Kuppi.

Para podermos proseguir com o processo de avaliação, estamos disponibilizando um teste dividido dois exercícios (Exercício prático e Exercício conceitual). Você terá um dia para desenvolvê-lo. Mas se surgir algum imprevisto ou problema é só nos avisar.

Orientações iniciais

O teste proposto será bem simples, porém por sermos uma startup, além das habilidades técnicas é muito importante a comunicação e pesquisa por soluções de problemas. Tenha isso em mente ao resolvê-lo.

O teste é composto por dois exercicios, é importante fazer os dois.

O uso de requisitos e os diferenciais listados na vaga será considerado um bônus.

O desenvolvimento deverá ser feito em ReactJs. O projeto deve ser entregue em outro repositório.

Será disponibilizado o ambiente de dev da Kuppi para a utilização durante o teste.

url: https://dev-api.kuppi.com.br

Uri Método Verbo Descrição
/example/products GET INDEX Array com todos os produtos.
/example/products/:product_id GET SHOW Object com todas as informações do produto com o id especificado.

Packages requeridos

É obrigatório o uso das bibliotecas listadas a seguir e será levados em consideração na análise do teste.

  • axios
  • styled-components

Esses outros packages a seguir também são obrigatórios, porém já estão implementados a arquitetura de seu uso, fique vontade para incrementar o que achar necessário e pertinente.

  • immer
  • react-router-dom
  • history
  • redux
  • react-redux
  • redux-persist
  • redux-saga

Boa sorte!

Exercício 1 - Teste prático

Para prosseguir faça um Fork desse projeto para utilizá-lo como base no teste.

  • Implemente uma aplicação que exiba em uma rota, uma listagem de produtos com seus nomes e preços.

  • Crie também em cada item da listagem, um componente que direcione para outra rota, que servirá para exibir os detalhes desse produto com o restante das informações disponíveis.

  • A estilização do projeto deve ser feito em Styled Component e ela juntamente com o layout desenvolvido serão levados em consideração na análise do teste.

Exercício 2 - Teste conceitual

Responda as perguntas abaixo com suas próprias palavras, mas também fique livre em aplicar algum desses conceitos na primeira parte do teste.

  • Se uma rota é repetida diversas vezes em sua aplicação, como seria possível melhorar a arquitetura para facilitar em manutenções posteriores? R: Todo código que é repetido mais de uma vez, você pode reutilizar. Colocaria essa rota em um arquivo separado e reutilizaria ele.
  • É possível melhorar a performance da solução? Como as melhorias impactam a leitura e manutenção do código? R: Poderia 'cachear' a resposta da requisição e em determinadas situações usar esse cache ao invés de fazer nova requisição. Isso pode tornar o código maior, porém não sei exatamente como fazer e os impactos.
  • De que forma o sistema pode escalar com a arquitetura planejada? R: Não tenho conhecimento necessário para responder essa pergunta.
  • Considerando as informações de retorno nas rotas da API disponibilizada para o teste, qual seria a sua sugestão para o controller que alimentaria essas rotas? Leve em consideração os conhecimentos de RESTful API. R: Fazer apenas 1 GET com uma verificação do parâmetro dentro desse GET. Se vier no parâmetro um id a consulta buscará especificamente por um id, se não vier faria uma busca geral.

bc_example's People

Contributors

pedroperalva avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.