java-conventions

Solid

Java code conventions covering Java 17+ records and sealed classes, formatting/static analysis, Maven/Gradle, JUnit 5, exception handling, constructor injection, streams, and security. Load when writing or reviewing Java code.

Code & Development 137 stars 13 forks Updated today MIT

Install

View on GitHub

Quality Score: 84/100

Stars 20%
71
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
61
Issue Health 10%
80
License 10%
100
Description 5%
100

Skill Content

- Java 17+ LTS, records for immutable data, sealed classes for restricted hierarchies, pattern matching. - A consistent style guide and auto-formatter (e.g., Google Java Style + google-java-format). Static analysis (e.g., Error Prone + SpotBugs). - Build: Maven or Gradle with wrapper scripts (`mvnw`/`gradlew`). Commit wrapper files. - Testing: JUnit 5 with `@ParameterizedTest`, an assertion library (e.g., AssertJ), a coverage tool (e.g., JaCoCo) at 80%+. - Benchmarking: JMH for microbenchmarks — never use `System.nanoTime()` loops. - Error handling: specific exceptions only, never `catch (Exception)`, use try-with-resources for `AutoCloseable`. - `var` for obvious types, `Optional<T>` for returns (never params/fields), `final` fields by default. - Prefer constructor injection over field injection for DI. Immutable collections: `List.of()`, `Map.of()`. - Streams for collection transforms, `instanceof` pattern matching, switch expressions. - Security: OWASP `dependency-check` Maven/Gradle plugin for CVE scanning. - Dependencies: commit lock files, use BOM for version alignment, avoid `SNAPSHOT` in releases. - Anti-patterns: public fields, mutable static state, raw types, checked exceptions in lambdas.

Details

Author
Goldziher
Repository
Goldziher/ai-rulez
Created
1 years ago
Last Updated
today
Language
Go
License
MIT

Similar Skills

Semantically similar based on skill content — not just same category