O’REILLY Learning「Data-Oriented Programming」1〜3

https://learning.oreilly.com/library/view/data-oriented-programming/9781617298578/

日本語訳 2023/4/19発売

エンジニアの会話形式で説明が進む。

1 Complexity of object-oriented programming

This chapter covers
・The tendency of OOP to increase system complexity
・What makes OOP systems hard to understand
・The cost of mixing code and data together into objects

OOPは、複雑なシステムを作る傾向がある。
オブジェクト指向プログラミング(OOP)

OOPを批判することではなく、複雑でないシステムを構築する傾向のあるデータ指向プログラミング(DOP)と呼ばれるプログラミングパラダイムを紹介する。

DOPは、OOPとFPの両方に対応している。

2 Separation between code and data

This chapter covers
・The benefits of separating code from data
・Designing a system where code and data are separate
・Implementing a system that respects the separation between code and data

コードをデータから分離することで、システムの複雑さを軽減できるというもの。

Principle #1
Separate code from data such that the code resides in functions, whose behavior doesn’t depend on data that is somehow encapsulated in the function’s context.
コードとデータを分離し、コードが関数に存在し、その関数のコンテキストに何らかの形でカプセル化されたデータに動作が依存しないようにする。

DOPでは、システムのデータエンティティを発見することから設計プロセスを開始する。

3 Basic data manipulation

This chapter covers
・Representing records with string maps to improve flexibility
・Manipulating data with generic functions
・Accessing each piece of information via its information path
・Gaining JSON serialization for free

DOPでは、データモデルをマップと配列(またはリスト)の柔軟な組み合わせで表現し、それぞれの情報に情報経路でアクセスできるようにすることが規定されている。

Principle #2
Represent data entities with generic data structures.
データ実体を汎用的なデータ構造で表現する。

データを操作するコードとデータとの間の依存関係は弱い依存関係。

Lodash
https://lodash.com/
モジュール性、パフォーマンス、エクストラを提供するモダンなJavaScriptユーティリティライブラリです。

memoO'REILLY Learning

Posted by shi-n