たれぱんのびぼーろく

わたしの備忘録、生物学とプログラミングが多いかも

状態管理

何を状態とするか、どこに状態を置くか、誰が状態へ変更するか、いつ状態を読み取るか

Viewにも変数、モデルにも変数、コントローラーにも変数、みたいな.
誰でもread/write可、変数を直接触れる、フォーマッターメソッド経由で触ることもある.
状態の分割等はなし、各部分で必要な状態をもつ.

The chaos.

対策

  • source of truth: 状態のコピーを存在させない => 状態量が減る、同期問題が無くなる
  • immutable state: 状態の更新はオブジェクト全体の差し替え => (state, change) => change(state) が冪等に => replayなどなど
  • (UI)
    • 宣言的UI: stateとviewの関係を記述するだけ => View側に状態を持たせる必要がなくなる