副作用とドメインを切り離す
#設計
#設計原則
#モデリング
3層アーキテクチャ
の基本
入力-処理-出力
の処理を独立させる
入力、出力が
I/O
処理が
ドメイン
「それがなにか」(What)と「どうするか」(How)の分離
永続化(ストレージ)層と状態遷移は切り離す
ビジネスロジック
の詳細を、
ドメインモデル
または
副作用のない関数(Side-Effect-Free Functions)
に閉じ込める
ドメインモデルの内部には、永続化にまつわる情報を混入させるべきではない
集約を永続化の関心事から切り離す
コアなデータ構造を変えることなく継続的な変化に適応するためのCQS
既存の
I/O
に変化を加えることなく処理のみを変更できる
リグレッション管理
が楽になる
ユースケース
の増加にスケールする
プレゼンテーション
層も同じことが言える
=
きちんと設計されたテストケースはフラクタル構造である
関心の分離はドメインとプレゼンテーションから考える(PDS)
Reactの副作用とは
Redux
,
The Composable Architecture
Effect System
も本質は同じ
関連
CQRSの時空分割と観測