BMAD-METHOD/expansion-packs/bmad-java/checklists/java-21-checklist.md

190 lines
4.6 KiB
Markdown

# Java 21 Development Checklist
## Project Setup
### Java 21 Configuration
- [ ] Java 21 JDK installed and configured
- [ ] JAVA_HOME environment variable set
- [ ] Maven configured to use Java 21
- [ ] IDE configured for Java 21
- [ ] Build tools updated for Java 21 compatibility
### Project Structure
- [ ] Maven project structure created
- [ ] Source directories configured (src/main/java, src/test/java)
- [ ] Resources directories configured (src/main/resources, src/test/resources)
- [ ] Package structure defined following conventions
- [ ] Module-info.java created (if using modules)
## Dependencies
### Maven Configuration
- [ ] pom.xml created with Java 21 configuration
- [ ] Maven compiler plugin configured for Java 21
- [ ] Spring Boot parent POM included
- [ ] Required dependencies added
- [ ] Dependency versions managed properly
### Spring Boot Dependencies
- [ ] spring-boot-starter-web (for web applications)
- [ ] spring-boot-starter-data-jpa (for data persistence)
- [ ] spring-boot-starter-security (for security)
- [ ] spring-boot-starter-test (for testing)
- [ ] spring-boot-starter-actuator (for monitoring)
## Code Quality
### Java 21 Features Usage
- [ ] Modern Java syntax used (var, pattern matching)
- [ ] Records used for data classes where appropriate
- [ ] Sealed classes used for restricted hierarchies
- [ ] Text blocks used for multi-line strings
- [ ] Enhanced switch expressions used
- [ ] Virtual threads used for concurrent operations
### Code Standards
- [ ] Proper naming conventions followed
- [ ] Code formatted consistently
- [ ] Comments added where necessary
- [ ] Exception handling implemented properly
- [ ] Logging configured appropriately
## Testing
### Unit Testing
- [ ] JUnit 5 configured and working
- [ ] Test classes created for main classes
- [ ] Test coverage adequate (>80%)
- [ ] Mock objects used appropriately
- [ ] Test data setup properly
### Integration Testing
- [ ] Spring Boot test annotations used
- [ ] Test profiles configured
- [ ] Database tests implemented
- [ ] API tests implemented
- [ ] Test containers used if needed
## Security
### Authentication & Authorization
- [ ] Spring Security configured
- [ ] Authentication mechanism implemented
- [ ] Authorization rules defined
- [ ] Password encoding configured
- [ ] Session management configured
### Security Best Practices
- [ ] Input validation implemented
- [ ] SQL injection prevention
- [ ] XSS protection configured
- [ ] CSRF protection enabled
- [ ] Security headers configured
## Performance
### JVM Optimization
- [ ] JVM parameters optimized for Java 21
- [ ] Garbage collector selected (ZGC/Shenandoah)
- [ ] Memory settings configured appropriately
- [ ] JIT compilation optimized
### Application Performance
- [ ] Database queries optimized
- [ ] Caching implemented where appropriate
- [ ] Connection pooling configured
- [ ] Async processing used where beneficial
- [ ] Performance monitoring implemented
## Deployment
### Containerization
- [ ] Dockerfile created
- [ ] Multi-stage build implemented
- [ ] Docker image optimized
- [ ] Container security hardened
- [ ] Health checks implemented
### AWS Deployment
- [ ] AWS infrastructure configured
- [ ] Container registry setup
- [ ] Deployment pipeline configured
- [ ] Monitoring and logging setup
- [ ] Backup and disaster recovery configured
## Documentation
### Code Documentation
- [ ] JavaDoc comments added
- [ ] README.md created
- [ ] API documentation generated
- [ ] Architecture documentation created
- [ ] Deployment guide written
### Operational Documentation
- [ ] Configuration guide created
- [ ] Troubleshooting guide written
- [ ] Monitoring guide created
- [ ] Security guide written
- [ ] Backup and recovery procedures documented
## Validation
### Functional Testing
- [ ] All features working correctly
- [ ] API endpoints responding properly
- [ ] Database operations working
- [ ] Security features functioning
- [ ] Performance requirements met
### Non-Functional Testing
- [ ] Load testing completed
- [ ] Security testing performed
- [ ] Compatibility testing done
- [ ] Usability testing completed
- [ ] Accessibility testing performed
## Go-Live Checklist
### Pre-Deployment
- [ ] All tests passing
- [ ] Code review completed
- [ ] Security scan passed
- [ ] Performance benchmarks met
- [ ] Documentation updated
### Deployment
- [ ] Production environment ready
- [ ] Database migrations completed
- [ ] Application deployed successfully
- [ ] Monitoring configured
- [ ] Health checks passing
### Post-Deployment
- [ ] Application accessible
- [ ] All features working
- [ ] Performance monitoring active
- [ ] Error logging configured
- [ ] Team notified of deployment