jabrena avatar

144 Java Data Oriented Programming

This is a refactoring guide for applying data-oriented programming principles in Java projects. It pushes you toward records over classes, immutable data with pure transformation functions, and flat structures with ID references instead of nested objects. The workflow is cautious: it requires a successful Maven compile before touching anything, walks you through the reference documentation for good and bad patterns, then verifies everything with a full build after changes. It's opinionated about separating data from behavior and keeping transformations explicit and traceable. Best for teams that want to move away from anemic domain models or overengineered OOP patterns toward something closer to functional programming without leaving Java.

skills.sh installs
129
GitHub stars
393
last updated
Jun 3, 2026

Install

$ npx -y skills add jabrena/cursor-rules-java --skill 144-java-data-oriented-programming --agent claude-code

Installs into .claude/skills of the current project.

Files

Java Data-Oriented Programming Best Practices

Apply data-oriented programming in Java: separate data from behavior with records, use immutable data structures, pure functions for transformations, flat denormalized structures with ID references, generic-to-specific type conversion when needed, pure validation functions, and flexible generic data access layers. All transformations should be explicit, traceable, and composed of clear pure functional steps.

What is covered in this Skill?

  • Separation of concerns: data structures (records, POJOs) vs behavior (utility classes, services)
  • Immutability: records, final fields, transformations produce new instances
  • Pure data transformations: functions depending only on inputs, no side effects
  • Flat and denormalized data: ID references instead of deep nesting
  • Generic until specific: Map<String,Object> for dynamic data, convert to records when processing
  • Data integrity: pure validation functions returning validation results
  • Flexible generic data access: generic CRUD interfaces, interchangeable implementations

Sponsors

Details

Repository
github.com/jabrena/cursor-rules-java
Category
Java & JVM
First seen
Jun 3, 2026

More from jabrena/cursor-rules-java

All 16

Recommended

More Java & JVM
1jabrena avatar170-java-documentationjabrena/cursor-rules-java170 java documentation129skills.sh installs
2aiskillstore avataralibaba-java-coding-guidelines-skillaiskillstore/marketplaceThis brings Alibaba's Java coding guidelines into your editor as a reviewable standard.0skills.sh installs
3limrun-inc avatarlimrun-gradlelimrun-inc/skillsBuild an Android app on a remote Gradle sandbox with `lim gradle build` instead of local Gradle or Android Studio, from any environment (Linux, Windows, macOS, 41.5Kskills.sh installs
4github avatarjava-docsgithub/awesome-copilotEnsure that Java types are documented with Javadoc comments and follow best practices for documentation.10.8Kskills.sh installs
5github avatarjava-refactoring-extract-methodgithub/awesome-copilotRefactoring using Extract Methods in Java Language9.3Kskills.sh installs
6github avatarjava-refactoring-remove-parametergithub/awesome-copilotRefactoring using Remove Parameter in Java Language8.9Kskills.sh installs