Data-Oriented Programming: Reduce Complexity by Rethinking Data (Paperback)

Sharvit, Yehonathan

  • 出版商: Manning
  • 出版日期: 2022-08-16
  • 售價: $2,230
  • 貴賓價: 9.5$2,119
  • 語言: 英文
  • 頁數: 451
  • 裝訂: Quality Paper - also called trade paper
  • ISBN: 1617298573
  • ISBN-13: 9781617298578
  • 相關分類: 軟體架構
  • 立即出貨 (庫存=1)

買這商品的人也買了...

相關主題

商品描述

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#.

Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

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.

商品描述(中文翻譯)

消除面向對象設計中不可避免的複雜性。創新的面向數據編程範式使您的系統更簡單,通過更簡單地訪問和操作數據來減少複雜性。

在《面向數據編程》中,您將學習如何:
- 將代碼與數據分離
- 使用通用數據結構表示數據
- 使用通用函數操作數據
- 在不改變數據的情況下管理狀態
- 在高度可擴展的系統中控制並發
- 編寫面向數據的單元測試
- 指定數據的形狀
- 在沒有對象的情況下受益於多態性
- 在沒有調試器的情況下調試程序

《面向數據編程》是一本獨一無二的指南,介紹了面向數據的範式。這種開創性的方法使用通用的不可變數據結構來表示數據。它簡化了狀態管理,簡化了並發,並消除了在面向對象代碼中常見的問題。本書通過對話、代碼片段和圖表介紹了強大的新思想,幫助您快速理解面向數據編程的優勢。最重要的是,這種範式不依賴於特定的編程語言 - 您將學習如何編寫可以在JavaScript、Ruby、Python、Clojure等傳統面向對象語言(如Java或C#)中實現的面向數據編程代碼。

購買印刷版書籍可獲得Manning Publications提供的PDF、Kindle和ePub格式的免費電子書。

關於技術:
將行為和數據結合在一起的代碼(如在面向對象設計中常見)可能會導致幾乎無法管理的狀態管理複雜性。面向數據編程(DOP)範式通過將應用程序數據保存在不可變的通用數據結構中,然後使用非變異的通用函數進行計算,從而簡化了狀態管理。您的應用程序不會出現與狀態相關的錯誤,代碼更容易理解和維護。

關於本書:
《面向數據編程》教您使用開創性的面向數據範式設計軟件。您將實施一個管理狀態而不改變數據的圖書管理系統,並為業務實體設計數據模型。眾多的圖表、直觀的思維導圖和獨特的對話方式都有助於您理解這些令人興奮的新思想。每一章都有一個讓您改變對編程思維的燈泡時刻。

內容包括:
- 將代碼與數據分離
- 使用通用數據結構表示數據
- 在不改變數據的情況下管理狀態
- 在高度可擴展的系統中控制並發
- 編寫面向數據的單元測試
- 指定數據的形狀

讀者對象:
對於具有JavaScript、Java、Python、C#、Clojure或Ruby等高級編程語言經驗的程序員。

關於作者:
Yehonathan Sharvit擁有超過二十年的軟件工程師經驗。他在世界各地博客、在會議上演講,並主持面向數據編程研討會。

作者簡介

Yehonathan Sharvit

Yehonathan Sharvit has been working as a software engineer since 2000, programming with C++, Java, Ruby, JavaScript, Clojure and ClojureScript.

As a functional programming expert, Yehonathan is a regular speaker at Tech events and lead tech workshops around the world. Yehonathan is the maintainer of Klipse - a popular github open source project. He blogs about programming languages at http://blog.klipse.tech.

He has strong academic background: M.Sc. in Mathematics and B.Sc. in Electrical Engineering from Technion institute in Israel.

作者簡介(中文翻譯)

葉霍納森·夏維特

葉霍納森·夏維特自2000年以來一直擔任軟體工程師,使用C++、Java、Ruby、JavaScript、Clojure和ClojureScript進行編程。

作為一位函數式編程專家,葉霍納森經常在技術活動中演講,並在世界各地主持技術研討會。他是Klipse的維護者,這是一個受歡迎的GitHub開源項目。他在http://blog.klipse.tech上寫博客,內容涉及編程語言。

他擁有豐富的學術背景:以色列Technion學院的數學碩士學位和電機工程學士學位。

目錄大綱

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

目錄大綱(中文翻譯)

第一部分:靈活性
1. 物件導向程式設計的複雜性
2. 程式碼與資料的分離
3. 基本資料操作
4. 狀態管理
5. 基本並行控制
6. 單元測試

第二部分:可擴展性
7. 基本資料驗證
8. 進階並行控制
9. 持久化資料結構
10. 資料庫操作
11. 網路服務

第三部分:可維護性
12. 進階資料驗證
13. 多型
14. 進階資料操作
15. 偵錯