Seja bem-vindo(a) ao nosso desafio técnico Droz! Este teste tem como objetivo avaliar sua habilidade prática com desenvolvimento backend em Java utilizando Spring Boot, boas práticas de código, organização e capacidade de entrega.
- Faça o fork deste repositório para a sua conta do GitHub.
- Desenvolva a solução em seu fork.
- Realize commits frequentes e com mensagens claras — queremos ver seu raciocínio de desenvolvimento.
- Ao finalizar, envie o link do seu repositório forkado para a pessoa responsável pelo processo seletivo.
⚠️ Importante: Não envie pull requests para este repositório original.
Toda a sua solução deve estar apenas no seu fork pessoal.
Você encontrará aqui uma aplicação Spring Boot que representa um cadastro de empresas. Seu desafio será: 1. Refatorar o código-fonte, eliminando code smells e aplicando boas práticas de desenvolvimento. 2. Adicionar o campo telefone na entidade Empresa, ajustando todas as camadas necessárias (DTO, controller, etc.). 3. Garantir que a aplicação continue funcionando corretamente após as alterações.
Durante sua análise e implementação, esperamos que você aplique os seguintes requisitos obrigatórios:
- Estruturação do código seguindo o padrão MVC (Model-View-Controller)
- Uso de validações com @Valid
- Uso de DTOs para entrada e saída de dados
- Tratamento adequado de erros e exceções
- Evitar repetições e aplicar o princípio DRY (Don’t Repeat Yourself)
- Documentação da API com Swagger/OpenAPI
- Garantia de que credenciais sensíveis não estejam expostas
- Commits pequenos e descritivos, que expliquem claramente a evolução do código
- Uso de boas práticas REST
Os itens abaixo não são obrigatórios, mas serão considerados diferenciais caso você queira demonstrar mais do seu conhecimento:
- Escrita de testes unitários
- Implementação de um ControllerAdvice para centralizar o tratamento de exceções
- Uso correto de Docker para subir a aplicação
- Uso adequado e estratégico de logs na aplicação
- Utilize commits atômicos e com mensagens claras.
- Documente qualquer decisão técnica que achar relevante no README ou via comentários no código.
- Não se preocupe em reinventar a roda, mas foque na qualidade, organização e clareza do seu código.
- Caso deseje utilizar alguma biblioteca externa para testes ou validações, fique à vontade (mas justifique se necessário).
Boa sorte e bons commits!