Data-oriented programming
Data-oriented programming is an approach to structuring software around data representations, access patterns, and operations suited to the data's characteristics and intended use.
Data-Oriented Programming: Reduce software complexity
A programming paradigm that organizes software around data and seeks to reduce system complexity by separating data from code and avoiding unnecessary mutation and encapsulation.
- How it is used
- Reduces system complexity and adapts behavior to changing requirements by separating data entities from stateless code modules.
- How deep it goes
- Works through architecture, data representation, permissions, database access, immutability, testing, and reproducible debugging.
- Examples
- Uses library permissions, map-based book records, relational database collections, and reproducible catalog-search debugging.
- What you can do after
- Apply it by designing stateless modules, generic records, explicit data flow, and reproducible data-driven debugging experiments.
Read how Data-Oriented Programming: Reduce software complexity explains data-oriented programming →
The Art of Code
A programming paradigm that models data as simple immutable structures and expresses behavior through standalone functions operating on that data.
- How it is used
- Centers design on explicit data so code communicates the problem and its intent clearly.
- How deep it goes
- Defines full data-oriented programming, then develops practical modeling principles rather than requiring a pure paradigm shift.
- Examples
- Contrasts an ambiguous User constructor with a PhysicalProfile using explicit weight and height types.
- What you can do after
- Evaluate/understand when explicit data carriers, local invariants, immutability, and flatter models improve clarity.
Read how The Art of Code explains data-oriented programming →
Related concepts
- arrayuses · An array is an indexed, ordered collection of elements arranged in one or more dimensions, with elements accessed by position.
- premature optimizationcontrasts with · Premature optimization is optimizing software before evidence establishes a meaningful performance need or bottleneck that justifies the change.
- object-oriented programmingcontrasts with · Object-oriented programming is a programming paradigm that organizes software around objects combining state and behavior, commonly using encapsulation, classes, inheritance, or polymorphism.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.

