Skip to main content

coding-style

Quarkus code style conventions: formatting, visibility, naming, logging, and general style rules for the Quarkus codebase.

Quellinformationen

Repository
quarkusio/quarkus
Letzte Quellaktivität
19. Mai 2026 um 15:25
Erkannte Sprache von SKILL.md
Englisch
Sterne
15.942
Forks
3.337

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
coding-style
description
Quarkus code style conventions: formatting, visibility, naming, logging, and general style rules for the Quarkus codebase.
# Coding Style ## Formatting - Quarkus uses 4-space indentation (no tabs) - The project enforces formatting via `formatter-maven-plugin` and `impsort-maven-plugin`, let the formatting plugins do their work, never use `-Dno-format` - Formatter config: `independent-projects/ide-config/src/main/resources/eclipse-format.xml` - Run `./mvnw process-sources` on your module to auto-format before committing - The build **will fail** on formatting violations - Imports are sorted and organized automatically; do not manually organize imports ## Visibility - Prefer package-private (default) visibility for internal implementation classes - Use `public` for user-facing API and for classes/methods that need to be accessed across packages (e.g., processors, recorders, build items). Prefer package-private for purely internal implementation details - Use `protected` when designing for extension/subclassing - Internal classes should go in `.internal` or `.impl` sub-packages (e.g., `io.quarkus.<ext>.runtime.internal`) ## Naming - Deployment processors: `<Feature>Processor.java` - Recorders: `<Feature>Recorder.java` - Build items: `<Description>BuildItem.java` - Config interfaces: `<Feature>Config.java` or `<Feature>BuildTimeConfig.java` / `<Feature>RuntimeConfig.java` - Artifact IDs: `quarkus-<name>` (runtime), `quarkus-<name>-deployment` (deployment) - Package root: `io.quarkus.<extension-name>` (hyphens become underscores) ## General Style - **No `@author` tags** in Javadoc — Git history tracks authorship - No wildcard imports - Never use fully-qualified class names inline — always add an `import` statement instead - Avoid `static` imports except for well-known patterns (e.g., test assertions) - **Minimize lambdas and streams in runtime code** — reduces memory footprint for native - Prefer descriptive method and variable names over comments - Update existing code comments if your changes make them invalid - Never remove existing code comments that are still valid - Keep methods focused and short; extract when complexity warrants it - Use `Optional` for API return types that may be absent. In internal hot runtime code paths, direct null checks are acceptable for performance - Commits should be atomic and semantic — properly squash before submitting PRs. This helps during bisects and makes it easier to revert changes when needed - Don't use deprecated methods or classes in new code ## Logging - Use JBoss Logging (`org.jboss.logging.Logger`) as the logging API - Do NOT use `System.out.println` or `System.err.println` - Do NOT use SLF4J, java.util.logging, or Log4j directly in Quarkus core/extension code ## Extension Descriptions Extension descriptions (in `runtime/pom.xml` or `quarkus-extension.yaml`) should: - Be short (no hover required) - Describe the function, not the technology - Start with an action verb, unconjugated (`Connect foo`, not `Connects foo`) - Not mention "Quarkus" or "extension" - Not repeat the extension name
Auf GitHub ansehen