num_pages: 325
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 Separate code from dataRepresent data with generic data structuresManipulate data with general-purpose functionsManage state without mutating dataControl concurrency in highly scalable systemsWrite data-oriented unit testsSpecify the shape of your dataBenefit from polymorphism without objectsDebug programs without a debuggerData-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#.Forewords by Michael T. Nygard and Ryan Singer.Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.About the technologyCode 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 bookData-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 insideSeparate code from dataRepresent data with generic data structuresManage state without mutating dataControl concurrency in highly scalable systemsWrite data-oriented unit testsSpecify the shape of your dataAbout the readerFor programmers who have experience with a high-level programming language like JavaScript, Java, Python, C#, Clojure, or Ruby.About the authorYehonathan 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.Table of ContentsPART 1 FLEXIBILITY1 Complexity of object-oriented programming2 Separation between code and data3 Basic data manipulation4 State management5 Basic concurrency control6 Unit testsPART 2 SCALABILITY7 Basic data validation8 Advanced concurrency control9 Persistent data structures10 Database operations11 Web servicesPART 3 MAINTAINABILITY12 Advanced data validation13 Polymorphism14 Advanced data manipulation15 Debugging
language: English
title: Data-Oriented Programming Unlearning objects
publisher: Manning