Book
Data-Oriented Programming
Reduce software complexity
Yehonathan Sharvit
Summary
Yehonathan Sharvit locates much of software's complexity in the habit of binding data to the code that owns it, and proposes the opposite: hold data in generic, immutable structures such as maps and lists, and keep the functions operating on it separate. One running system, a library management application, is developed across the whole book so that state is managed without ever mutating data. The three parts take the idea through flexibility, covering the separation of code from data, data manipulation, state management, concurrency control, and unit testing; scalability, covering validation, concurrency, persistent data structures, databases, and web services; and maintainability, covering advanced validation, polymorphism, and debugging. The paradigm is presented as language-agnostic, and written as a conversation rather than reference prose.
Target Readers
- Developers fluent in a high-level language who suspect that the complexity in their systems comes from how data and behavior are bound together
- Architects who want to see immutable, generic data structures applied to an entire application rather than to isolated examples
- Engineers curious about functional data modeling but working in an object-oriented codebase they cannot replace
Tags
Colophon
- Publisher
- Shoeisha
- ISBN
- 978-4798179797
- Published
- Apr 2023
- List price
- ¥3,960incl. taxMay differ from the actual selling price on Amazon
Get this book
* The link above is an advertisement via Amazon Associates.Related Books
Prerequisites
- Related
Tatsujin ni Manabu DB Sekkei Tettei Shinansho, 2nd Edition (A Thorough Guide to DB Design, Learned from an Expert)
Mick
Reason: Studying RDB table design naturally extends interest to how data is represented on the application side. Yehonathan Sharvit's 'Data-Oriented Programming' advocates treating data as immutable generic structures, offering a view that connects the database's normalization mindset with application-side data modeling.
- Related
Domain-Driven Design: Tackling Complexity in the Heart of Software
Eric Evans
Reason: After learning to express a domain model with objects, you encounter the contrasting data-oriented idea of separating code from data and taming complexity with immutable data, relativizing the assumptions of your design.
- Related
A Philosophy of Software Design, 2nd Edition
John Ousterhout
Reason: Once you have general principles for managing complexity, you examine data-oriented programming as one concrete prescription—separating data from behavior and embracing immutability. The same goal admits different paths.
Next Books
- Related
Designing Data-Intensive Applications
The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
Martin Kleppmann
Reason: The mindset of treating data as immutable connects deeply with how distributed systems handle consistency and event history. Kleppmann's 'Designing Data-Intensive Applications' covers log-centric architectures and event sourcing, extending the immutable-data idea into the context of distributed infrastructure.