Boas práticas e testes
Organização do código
- controllers coordenam a requisição;
- services concentram casos de uso e regras;
- repositories acessam dados;
- DTOs tornam contratos explícitos;
- entities protegem invariantes;
- middlewares aplicam políticas transversais.
Validação e erros
Valide formato na entrada e regras no domínio. Retorne erros claros por campo quando o cliente puder corrigir o dado. Respostas públicas não incluem stack trace, SQL, caminho interno ou segredo; detalhes técnicos ficam nos logs do projeto.
Banco
Use prepared statements, transações curtas, índices adequados e migrations reversíveis quando possível. Seeders precisam ser reproduzíveis e não podem duplicar dados a cada execução.
Matriz mínima de testes
| Área | Cenários obrigatórios |
|---|---|
| Rotas | Método, caminho inexistente, payload válido e inválido. |
| Segurança | Sem token, token inválido, outro projeto e papel insuficiente. |
| Banco | Migration, seeder, transação, conflito e rollback. |
| Concorrência | Idempotência, corrida e limites. |
| Runtime | Health, catálogo de rotas e atualização incremental. |
Antes de ativar
- Sincronize dependências.
- Execute análise e testes.
- Rode migrations e seeders necessários.
- Confira CORS e proteção das rotas.
- Teste respostas de sucesso e erro.
- Prepare rollback para mudanças de dados.