
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-codeInstalls 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- 170 Java Documentation129
- 132 Java Testing Integration Testing128
- 113 Java Maven Documentation125
- 110 Java Maven Best Practices160
- 121 Java Object Oriented Design153
- 124 Java Secure Coding146
- 111 Java Maven Dependencies136
- 125 Java Concurrency135
- 128 Java Generics135
- 141 Java Refactoring With Modern Features135
- 142 Java Functional Programming135
- 131 Java Testing Unit Testing134
- 112 Java Maven Plugins133
- 143 Java Functional Exception Handling133
- 122 Java Type Design132