Book description
Eliminate the unavoidable complexity of object-oriented designs. The innovative data-oriented programming paradigm makes your systems less complex by making it simpler to access and manipulate data.In Data-Oriented Programming you will learn how to:
- Separate code from data
- Represent data with generic data structures
- Manipulate data with general-purpose functions
- Manage state without mutating data
- Control concurrency in highly scalable systems
- Write data-oriented unit tests
- Specify the shape of your data
- Benefit from polymorphism without objects
- Debug programs without a debugger
Data-Oriented Programming is a one-of-a-kind guide that introduces the data-oriented paradigm. This groundbreaking approach represents data with generic immutable data structures. It simplifies state management, eases concurrency, and does away with the common problems you’ll find in object-oriented code. The book presents powerful new ideas through conversations, code snippets, and diagrams that help you quickly grok what’s great about DOP. Best of all, the paradigm is language-agnostic—you’ll learn to write DOP code that can be implemented in JavaScript, Ruby, Python, Clojure, and also in traditional OO languages like Java or C#.
About the Technology
Code that combines behavior and data, as is common in object-oriented designs, can introduce almost unmanageable complexity for state management. The Data-oriented programming (DOP) paradigm simplifies state management by holding application data in immutable generic data structures and then performing calculations using non-mutating general-purpose functions. Your applications are free of state-related bugs and your code is easier to understand and maintain.
About the Book
Data-Oriented Programming teaches you to design software using the groundbreaking data-oriented paradigm. You’ll put DOP into action to design data models for business entities and implement a library management system that manages state without data mutation. The numerous diagrams, intuitive mind maps, and a unique conversational approach all help you get your head around these exciting new ideas. Every chapter has a lightbulb moment that will change the way you think about programming.
What's Inside
- Separate code from data
- Represent data with generic data structures
- Manage state without mutating data
- Control concurrency in highly scalable systems
- Write data-oriented unit tests
- Specify the shape of your data
About the Reader
For programmers who have experience with a high-level programming language like JavaScript, Java, Python, C#, Clojure, or Ruby.
About the Author
Yehonathan Sharvit has over twenty years of experience as a software engineer. He blogs, speaks at conferences, and leads Data-oriented programming workshops around the world.
Quotes
Reach the next level of enlightenment…Reduce accidental complexity and raise the level of abstraction.
- From the Foreword by Michael T. Nygard, author of Release It!: Design and Deploy Production-Ready Software
After I saw the examples, I couldn’t unsee it. I didn’t need a new language; I needed to approach programming differently!
- From the Foreword by Ryan Singer, author of Shape Up: Stop Running in Circles and Ship Work that Matters
If you have to deal with data in your code, you should know about DOP!
- Michael Aydinbas, Exxeta
The principles are straightforward and universally applicable.
- Seth MacPherson, QuoteFactory
Publisher resources
Table of contents
- inside front cover
- Data-Oriented Programming
- Copyright
- dedication
- Brief contents
- contents
- front matter
- Part 1. Flexibility
- 1 Complexity of object-oriented programming
- 2 Separation between code and data
- 3 Basic data manipulation
- 4 State management
- 5 Basic concurrency control
- 6 Unit tests
- Part 2. Scalability
- 7 Basic data validation
- 8 Advanced concurrency control
- 9 Persistent data structures
- 10 Database operations
- 11 Web services
- Part 3. Maintainability
- 12 Advanced data validation
- 13 Polymorphism
- 14 Advanced data manipulation
- 15 Debugging
- Appendix A. Principles of data-oriented programming
- Appendix B. Generic data access in statically-typed languages
- Appendix C. Data-oriented programming: A link in the chain of programming paradigms
- Appendix D. Lodash reference
- index
- inside back cover
Product information
- Title: Data-Oriented Programming
- Author(s):
- Release date: August 2022
- Publisher(s): Manning Publications
- ISBN: 9781617298578
You might also like
book
Five Lines of Code
In Five Lines of Code you will learn: The signs of bad code Improving code safely, …
book
Programming Rust, 2nd Edition
Systems programming provides the foundation for the world's computation. Writing performance-sensitive code requires a programming language …
book
Grokking Algorithms
Grokking Algorithms is a fully illustrated, friendly guide that teaches you how to apply common algorithms …
book
Design Patterns: Elements of Reusable Object-Oriented Software
Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a …