Estamos disponibilizando para você um projeto REST Maven em Java muito parecido com o que usamos aqui na Trust: https://github.com/desafioTrust/desafio-candidato-dev-backend
PASSO A PASSO PARA REALIZAÇÃO DO TESTE Crie um repositório privado no GitHub.com a partir de um fork do projeto desafio-candidato-dev-backend. Você também deve adicionar o usuário desafioTrust como colaborador deste repositório privado, para que possamos fazer a avaliação.
Execute as atividades abaixo, mostre seu potencial e ajude a gente a conhecer melhor o profissional que você é. As atividades 1, 2 e 3 são para perfis Junior e Pleno; as posições Pleno e Sênior deverão responder todas as questões. Boa sorte!
-
Code Review:
Precisamos que você revise nosso código, sendo assim, por favor avalie o que está no projeto de teste desafio-candidato-dev-backend de acordo com os critérios de: padrões de projeto, boas práticas, padrões Rest de nomenclatura e codificação. Monte um src/main/resources/CODEREVIEW.txt com seus comentários. Aponte tudo o que você achar errado/estranho em todo o projeto. -
Healthcheck:
Os serviços precisam ser validados e monitorados, por isso, é necessário que seja implementado um resource(api) que cheque a saúde dos nossos serviços. Sendo assim, crie um endpoint healthcheck em nosso micro-serviço de teste desafio-candidato-dev-backend (um endpoint GET /info) e retorne uma mensagem confirmando que nosso serviço está funcionando e recebendo requisições. OBS: Será que temos alguma biblioteca pronta que podemos usar nesta atividade? Qual seria? -
Implementar serviços de consulta de CEP:
Precisamos construir 2 serviços no projeto de desafio-candidato-dev-backend, ambos vão consumir o seguinte endpoint:
https://zuul.trusthub.com.br/orchestrator/v1/obter-endereco-por-cep/{CEP}
{CEP} - Substituir pelo número do CEP
Agora, crie o primeiro endpoint GET em nosso micro-serviço que aceite o parâmetro CEP e retorne os detalhes do CEP, buscando em nossa API de CEP´s.
Agora, crie o segundo endpoint POST em nosso micro-serviço que aceite o parâmetro lista de CEP e retorne os detalhes de cada cep, buscando em nossa API de CEP´s.
-
Implementação de Cache:
Pesquise e aplique alguma biblioteca de cache para tornar nosso micro-serviço mais rápido, assim evita chamar nossa API com dados consultados recentemente. Justifique brevemente sua resposta. -
Service Discovery e Perfil:
Adicione no micro-serviço os paramentos de sincronismo com o Discovery Server. Crie 2 perfis para execução em seu micro-serviço. Sugestão: Iniciar um Discovery-Server via Docker será um grande diferencial. -
Tolerância a falhas:
Não podemos deixar que nosso serviço seja afetado porque o endpoint de consulta de CEP está fora do ar. Sendo assim, implemente o Hystrix no nosso projeto de testes. Em caso de falha... o que poderia acontecer para que o nosso endpoint não retorne apenas uma resposta de erro genérica? Justifique brevemente sua resposta.
Ao finalizar, envie um e-mail para [email protected] com nome, telefone para contato e link do repositório. Por favor, avise também seu recrutador.
Tenha em mente nosso stack de tecnologia:
-
Stack mandatorio de tecnologia
java 6 ou ++
Spring (IOF) Injeção de dependencia
Conceitos REST
Sql ANCI
Eclipse IDE
GIT -
Stack plus de tecnologia
Spring Boot
Spring Eureka
Spring ribbon
Spring zuul
Spring Swagger
Spring Data
Spring JDBCTemplate
Spring Security
Arquitetura Microserviços
Banco de dados nao relacional (ex: mongo).
HTML 5
JAVASCRIPT
TypeScript
Angular 5.X
Kibana
Teste unitarios (junit). -
Stack direrenciais de tecnologia
Spring histrix
DevOps
Kubernetes
Docker
Sql Server
Mongo DB
Boa sorte!