副作用のない(疎結合な)システムを作るために
-
REST / 「GET」「POST」「PUT」「DELETE」
-
リソースをURIで識別する
-
URIにより一つのリソース識別する。例えば、顧客・プロダクト・検索結果などをURIで識別できる。
-
ステートレスな通信
-
各リクエストが独立していて、以前の状態を持たないので、毎回のリクエストに必要な全て情報が含まれる。
-
コマンドクエリ責務分離(CQRS)
-
更新と取得(書き込みと読み込み)の処理はそれぞれ分けて実装する
-
Getter、Setter、Reduxなどの1方向のデータフローと似た概念かも
-
コマンド
-
メソッドがオブジェクトの状態を変更するのであれば、値を返却しない。
-
クエリ
-
メソッドが値を返却するのであれば、オブジェクトの状態を変更してはいけない。