Projeto desenvolvido na etapa de Teste Técnico para a empresa Attornatus.
Documentação da API disponível em:
RESTful API funcional hospedada no Render: https://attornatus-api.onrender.com/
Apenas Documentação: https://gpmrks.github.io/AttornatusJavaBackend/
O objetivo deste documento é identificar seus conhecimentos quanto às tecnologias utilizadas no cotidiano de desenvolvimento da equipe de Back-end na Attornatus Procuradoria Digital.
Esta análise propõe avaliar os seguintes temas:
- Qualidade de código
- Java, Spring boot
- API REST
- Testes
A entrega deverá ser feita da seguinte forma:
- O prazo para entrega da avaliação será de até 7 dias após envio da mesma
- Encaminhar este documento com as perguntas respondidas e com o link do código público em sua conta do GitHub
- Opcionalmente, caso você consiga fazer o build da aplicação, poderá também informar o link de acesso
Qualidade de código
-
Durante a implementação de uma nova funcionalidade de software solicitada, quais critérios você avalia e implementa para garantia de qualidade de software?
Sempre avalio a qualidade do meu código ao escrever, levando em consideração sua legibilidade, sua coesão, se possui baixo acoplamento, se está limpo, e sempre visando utilizar as práticas mais modernas com os limites impostos em cada projeto. -
Em qual etapa da implementação você considera a qualidade de software?
Considero do início ao fim, não acredito ser uma parte do ciclo, mas sim deveria fazer parte do ciclo todo, incluindo testes e segurança.
Usando Spring boot, crie uma API simples para gerenciar Pessoas. Esta API deve permitir:
- Criar uma pessoa
- Editar uma pessoa
- Consultar uma pessoa
- Listar pessoas
- Criar endereço para pessoa
- Listar endereços da pessoa
- Poder informar qual endereço é o principal da pessoa
Uma Pessoa deve ter os seguintes campos:
- Nome
- Data de nascimento
- Endereço:
- Logradouro
- CEP
- Número
- Cidade
Requisitos
- Todas as respostas da API devem ser JSON
- Banco de dados H2
Diferencial
- Testes
- Clean Code
Será levado em avaliação
- Estrutura, arquitetura e organização do projeto
- Boas práticas de programação
- Alcance dos objetivos propostos.