- Use Sonarlint Plugin for IDE to minimize code smells.
- Use Loggers for logging any failures or success messages.(Never use Sysout)
- Use Starter dependencies and tag to have version uniformity.
- Bind reponses in ResponseEntity object to get the appropriate HTTP Status Codes.
- Ensure code modularity for reuse.
- Have OpenAPI3 integration for exposing endpoints of the Service.
- Always have spring.application.name for the project
- Follow Richardson Maturity Model for endpoint nomenclature.
- Serialize the POJOs and have SerialVersionUID always.
- Use Lombok Annotations for POJO as far as possible
- Save all hard-coded values in Properties file
- Always go for Unchecked Exception which implements RuntimeException
- Follow proper Semantic versioning of maven based projects
- Write unit tests and have code coverage report using Jacoco.
- Replace for loop with Java 8 Lamda functions.