Apply consistent Java coding standards for Spring Boot and Quarkus services.
Copy the install command and let the AI configure it · recommended for beginners
Please install the "java-coding-standards" skill from askskill: 1. Download https://raw.githubusercontent.com/affaan-m/ECC/main/skills/java-coding-standards/SKILL.md 2. Save it as ~/.claude/skills/java-coding-standards/SKILL.md 3. Reload skills and tell me it's ready
Review this Spring Boot service code against Java coding standards. Focus on naming, immutability, Optional, exception handling, Stream usage, and project layout, then provide a revised version with explanations.
Returns refactored code aligned with Spring Boot conventions, plus rule-by-rule explanations and reasons for each change.
Optimize this Java service implementation using Quarkus coding standards. Pay special attention to CDI injection, generics, exception design, reactive patterns, and folder organization, then output the improved code.
Outputs an improved implementation following Quarkus style, with notes on the framework-specific conventions applied.
Create a Java coding standards checklist for Spring Boot and Quarkus service development, covering naming, Optional, Streams, exceptions, immutable objects, reactive programming, and module structure.
Generates a standards checklist for code reviews or team collaboration to keep development practices consistent.
Standards for readable, maintainable Java (17+) code in Spring Boot and Quarkus services.
Before applying standards, determine the framework from the build file:
quarkus → apply [QUARKUS] conventionsspring-boot → apply [SPRING] conventionsThe sections below show concrete Spring Boot, Quarkus, and shared Java examples for naming, immutability, dependency injection, reactive code, exceptions, project layout, logging, configuration, and tests.
// PASS: Classes/Records: PascalCase
public class MarketService {}
public record Money(BigDecimal amount, Currency currency) {}
// PASS: Methods/fields: camelCase
private final MarketRepository marketRepository;
public Market findBySlug(String slug) {}
// PASS: Constants: UPPER_SNAKE_CASE
private static final int MAX_PAGE_SIZE = 100;
// PASS: [QUARKUS] JAX-RS resources named as *Resource, not *Controller
public class MarketResource {}
// PASS: [SPRING] REST controllers named as *Controller
public class MarketController {}
// PASS: Favor records and final fields
public record MarketDto(Long id, String name, MarketStatus status) {}
public class Market {
private final Long id;
private final String name;
// getters only, no setters
}
// PASS: [QUARKUS] Panache active-record entities use public fields (Quarkus convention)
@Entity
public class Market extends PanacheEntity {
public String name;
public MarketStatus status;
// Panache generates accessors at build time; public fields are idiomatic here
}
// PASS: [QUARKUS] Panache MongoDB entities
@MongoEntity(collection = "markets")
public class Market extends PanacheMongoEntity {
public String name;
public MarketStatus status;
}
// PASS: Return Optional from find* methods
// [SPRING]
Optional<Market> market = marketRepository.findBySlug(slug);
// [QUARKUS] Panache
Optional<Market> market = Market.find("slug", slug).firstResultOptional();
// PASS: Map/flatMap instead of get()
return market
.map(MarketResponse::from)
.orElseThrow(() -> new EntityNotFoundException("Market not found"));
// PASS: Use streams for transformations, keep pipelines short
List<String> names = markets.stream()
.map(Market::name)
.filter(Objects::nonNull)
.toList();
// FAIL: Avoid complex nested streams; prefer loops for clarity
// PASS: [SPRING] Constructor injection (preferred over @Autowired on fields)
@Service
public class MarketService {
private final MarketRepository marketRepository;
public MarketService(MarketRepository marketRepository) {
this.marketRepository = marketRepository;
}
}
// PASS: [QUARKUS] Constructor injection
@ApplicationScoped
public class MarketService {
private final MarketRepository marketRepository;
@Inject
public MarketService(MarketRepository marketRepository) {
this.marketRepository = marketRepository;
}
}
// PASS: [QUARKUS] Package-private field injection (acceptable in Quarkus — avoids proxy issues)
@ApplicationScoped
public class MarketService {
…
Handle returns, refunds, fraud checks, and warranty claim decisions efficiently.
Use Bun for runtime, bundling, testing, packages, and Node migration decisions.
Use the correct Ethereum Keccak-256 hashing in Node.js and TypeScript.
Apply Nuxt 4 patterns for SSR safety, performance, and data fetching.
Generate images, videos, and audio with one unified AI media workflow.
Design Quarkus 3 backend patterns for messaging, APIs, data, and async workflows.
Apply test-driven development to Quarkus 3.x features, fixes, and refactors.
Design and improve Spring Boot backend architecture, APIs, and service implementation.
Apply Spring Boot security best practices for authentication, authorization, and service hardening.
Apply modern, safe, idiomatic C++ standards for writing, review, and refactoring.
Generate explicit Java boilerplate code to replace Lombok with reviewable source.
Name code by domain meaning to improve clarity and team alignment.