Coding Standards MCP Server
by ggerve
- templates
# Java Best Practices
## Project Structure
project-root/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/company/project/
│ │ │ ├── api/ # API interfaces
│ │ │ ├── config/ # Configuration
│ │ │ ├── controller/ # Request handlers
│ │ │ ├── model/ # Domain model
│ │ │ ├── repository/ # Data access
│ │ │ ├── service/ # Business logic
│ │ │ └── util/ # Utilities
│ │ └── resources/
│ │ ├── config/ # Configuration files
│ │ ├── db/ # Database scripts
│ │ └── static/ # Static resources
│ └── test/
│ ├── java/ # Test classes
│ └── resources/ # Test resources
├── docs/ # Documentation
├── .gitignore
├── README.md
└── pom.xml # or build.gradle
## Architecture
- Follow microservices principles if building distributed systems
- Use layered architecture (Controller → Service → Repository)
- Keep services small and focused
- Design for failure
- Make services independently deployable
## Dependencies
- Keep dependencies up to date
- Use dependency version management
- Minimize external dependencies
- Use appropriate dependency scopes
- Include only what you need
## Security
- Never store secrets in code
- Use HTTPS everywhere
- Implement proper authentication/authorization
- Validate all inputs
- Keep security dependencies updated
- Follow the principle of least privilege
## Database
- Use connection pooling
- Implement proper transaction management
- Use database migrations
- Don't trust user input in queries
- Keep database credentials secure
## Testing
- Write unit tests for business logic
- Include integration tests
- Use proper test data
- Mock external dependencies
- Test error scenarios
## Monitoring
- Implement health checks
- Add proper logging
- Include metrics collection
- Monitor performance
- Set up alerts for critical issues
## Documentation
- Document public APIs
- Keep documentation up to date
- Include setup instructions
- Document configuration options
- Maintain changelog
## Performance
- Use caching where appropriate
- Implement pagination for large datasets
- Profile your application
- Optimize database queries
- Use async operations when beneficial
## Error Handling
- Implement global error handling
- Use appropriate exception types
- Log errors properly
- Return proper error responses
- Include error tracking