-
Notifications
You must be signed in to change notification settings - Fork 0
Padrões de Código
Daniel Mesquita edited this page Oct 12, 2024
·
3 revisions
- Classes: PascalCase (ex:
UserController
,AdoptionService
) - Métodos e variáveis: camelCase (ex:
getUserById
,adoptionDate
) - Constantes: UPPER_SNAKE_CASE (ex:
MAX_ADOPTION_LIMIT
) - Pacotes: minúsculas (já em conformidade)
Utilizar o plugin fmt-maven-plugin
para manter o padrão google-java-format, sempre antes de enviar um commit.
- Executar
mvn com.spotify.fmt:fmt-maven-plugin:format
via linha de comando.
- Sufixo:
Controller
- Responsabilidade: Manipular requisições HTTP, validação básica de entrada
- Anotações comuns:
@RestController
,@RequestMapping
- Sufixo:
Service
- Responsabilidade: Lógica de negócios
- Anotações comuns:
@Service
- Sufixo:
Repository
- Responsabilidade: Interação com o banco de dados
- Anotações comuns:
@Repository
- Entities
- Representam tabelas no banco de dados
- Anotações comuns:
@Entity
,@Table
- DTOs
- Usados para transferência de dados entre camadas
- Sufixo:
DTO
- Configurações e classes relacionadas à segurança
- Inclui configurações de autenticação e autorização
- Exceções personalizadas do projeto
- Nomenclatura: Sufixo
Exception
(ex:AdoptionLimitException
)
- Princípio de Responsabilidade Única (SRP)
- Injeção de Dependência via construtor
- Métodos pequenos e focados
- Evitar código duplicado (DRY)
- Usar Lombok para reduzir boilerplate (ex:
@Data
,@Builder
)
- Validar todas as entradas do usuário
- Implementar autenticação e autorização adequadas
- Não expor informações sensíveis em logs ou respostas de erro
- Usar HTTPS em produção
- Criar exceções personalizadas quando necessário
- Usar
@ControllerAdvice
para tratamento global de exceções - Retornar respostas de erro consistentes e informativas
- Usar Javadoc para classes e métodos públicos
- Manter a DOCUMENTAÇÃO do projeto atualizado
- Documentar a API com Swagger/OpenAPI