Data-Oriented Programming: Reduce software complexity

  • 8h 32m 35s
  • Yehonathan Sharvit
  • Manning Publications
  • 2022

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.

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.

In this Audiobook

  • Introduction
  • Chapter 1 - Complexity of object-oriented programming
  • Chapter 2 - Separation between code and data
  • Chapter 3 - Basic data manipulation
  • Chapter 4 - State management
  • Chapter 5 - Basic concurrency control
  • Chapter 6 - Unit tests
  • Chapter 7 - Basic data validation
  • Chapter 8 - Advanced concurrency control
  • Chapter 9 - Persistent data structures
  • Chapter 10 - Database operations
  • Chapter 11 - Web services
  • Chapter 12 - Advanced data validation
  • Chapter 13 - Polymorphism
  • Chapter 14 - Advanced data manipulation
  • Chapter 15 - Debugging