java-conventions
Java coding conventions for enterprise applications. Covers package naming, class naming suffixes, method ordering, null handling, and immutability patterns.
Installation
Suivez les instructions du dépôt pour votre agent. Consultez les fichiers et dépendances avant l’installation.
Voir la source ↗GuidesInstructions
Java Conventions
Package Naming
com.{org}.{domain}.{layer}
| Layer | Package | Example |
|---|---|---|
| API/Controller | .controller |
com.forge.order.controller |
| Service | .service |
com.forge.order.service |
| Repository | .repository |
com.forge.order.repository |
| Domain/Model | .model |
com.forge.order.model |
| DTO | .dto |
com.forge.order.dto |
| Configuration | .config |
com.forge.order.config |
| Exception | .exception |
com.forge.order.exception |
Class Naming Suffixes
| Type | Suffix | Example |
|---|---|---|
| REST Controller | Controller |
OrderController |
| Service | Service |
OrderService |
| Repository | Repository |
OrderRepository |
| DTO (request) | Request |
CreateOrderRequest |
| DTO (response) | Response |
OrderResponse |
| Configuration | Config |
SecurityConfig |
| Exception | Exception |
OrderNotFoundException |
| Mapper | Mapper |
OrderMapper |
| Event | Event |
OrderCreatedEvent |
Method Ordering in Classes
- Static fields (logger, constants)
- Instance fields (final dependencies)
- Constructor
- Public API methods (business operations)
- Package-private / protected methods
- Private helper methods
- Static factory/utility methods
Null Handling
- Return
Optional<T>for methods that might not return a value — NEVER returnnullfrom public methods - Use
@NonNull/@Nullableannotations at entry points - NEVER return
nullfor collections — return empty collections
// GOOD
public Optional<Order> findById(UUID id) {
return orderRepository.findById(id);
}
Immutability
- Prefer
finalfields wherever possible - Use Java Records for DTOs (Java 16+)
- Use
Collections.unmodifiableList()for collection fields
public record CreateOrderRequest(
@NotNull String customerId,
@NotEmpty List<OrderItemRequest> items
) {}
Import Ordering
-
java.* -
javax.* -
org.* -
com.* - Static imports last
No wildcard imports — always import specific classes.
Exemples
Consultez les exemples du dépôt source.
Voir la source ↗Historique source
- Date d’indexation
- 2026-03-11
- Mise à jour de l’index
- 2026-03-11
- Branch
- main
Les dates concernent ce répertoire. Consultez le dépôt pour l’historique du code.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!