{"product_id":"data-oriented-programming-reduce-software-complexity-9781617298578","title":"Data-Oriented Programming: Reduce Software Complexity","description":"\u003cb\u003eEliminate 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.\u003c\/b\u003e \u003cp\u003e\u003c\/p\u003eIn \u003ci\u003eData-Oriented Programming\u003c\/i\u003e you will learn how to: \u003cp\u003e\u003c\/p\u003e Separate code from data\u003cbr\u003e Represent data with generic data structures\u003cbr\u003e Manipulate data with general-purpose functions\u003cbr\u003e Manage state without mutating data\u003cbr\u003e Control concurrency in highly scalable systems\u003cbr\u003e Write data-oriented unit tests\u003cbr\u003e Specify the shape of your data\u003cbr\u003e Benefit from polymorphism without objects\u003cbr\u003e Debug programs without a debugger \u003cp\u003e\u003c\/p\u003e \u003ci\u003eData-Oriented Programming\u003c\/i\u003e 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#. \u003cp\u003e\u003c\/p\u003e Forewords by Michael T. Nygard and Ryan Singer. \u003cp\u003e\u003c\/p\u003e Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. \u003cp\u003e\u003c\/p\u003e About the technology\u003cbr\u003e 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. \u003cp\u003e\u003c\/p\u003e About the book\u003cbr\u003e \u003ci\u003eData-Oriented Programming\u003c\/i\u003e 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. \u003cp\u003e\u003c\/p\u003e What's inside \u003cp\u003e\u003c\/p\u003e Separate code from data\u003cbr\u003e Represent data with generic data structures\u003cbr\u003e Manage state without mutating data\u003cbr\u003e Control concurrency in highly scalable systems\u003cbr\u003e Write data-oriented unit tests\u003cbr\u003e Specify the shape of your data \u003cp\u003e\u003c\/p\u003e About the reader\u003cbr\u003e For programmers who have experience with a high-level programming language like JavaScript, Java, Python, C#, Clojure, or Ruby. \u003cp\u003e\u003c\/p\u003e About the author\u003cbr\u003e \u003cb\u003eYehonathan Sharvit\u003c\/b\u003e has over twenty years of experience as a software engineer. He blogs, speaks at conferences, and leads Data-Oriented Programming workshops around the world. \u003cp\u003e\u003c\/p\u003e Table of Contents\u003cbr\u003e PART 1 FLEXIBILITY\u003cbr\u003e 1 Complexity of object-oriented programming\u003cbr\u003e 2 Separation between code and data\u003cbr\u003e 3 Basic data manipulation\u003cbr\u003e 4 State management\u003cbr\u003e 5 Basic concurrency control\u003cbr\u003e 6 Unit tests\u003cbr\u003e PART 2 SCALABILITY\u003cbr\u003e 7 Basic data validation\u003cbr\u003e 8 Advanced concurrency control\u003cbr\u003e 9 Persistent data structures\u003cbr\u003e 10 Database operations\u003cbr\u003e 11 Web services\u003cbr\u003e PART 3 MAINTAINABILITY\u003cbr\u003e 12 Advanced data validation\u003cbr\u003e 13 Polymorphism\u003cbr\u003e 14 Advanced data manipulation\u003cbr\u003e 15 Debugging\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eAbout the Author\u003c\/b\u003e\u003cbr\u003e\u003cstrong\u003e\u003cem\u003eYehonathan Sharvit\u003c\/em\u003e\u003c\/strong\u003e has over twenty years experience as a software engineer, programming with C++, Java, Ruby, JavaScript, Clojure and ClojureScript. He currently works as a software architect at Cycognito building software infrastructures for high scale data pipelines. He writes about software engineering at his blog, speaks at conferences, and leads Clojure workshops around the world.\u003cbr\u003e","brand":"Manning Publications","offers":[{"title":"Default Title","offer_id":50383169028370,"sku":"9781617298578","price":55.99,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0831\/4771\/8930\/files\/img_91b864dd-b3d8-4344-8108-72f7604f1cab.jpg?v=1728780105","url":"https:\/\/surprise-castle.myshopify.com\/products\/data-oriented-programming-reduce-software-complexity-9781617298578","provider":"Surprise Castle","version":"1.0","type":"link"}