ソフトウェア設計における状態管理
ソフトウェア設計における大きなテーマである状態と状態管理についてまとめる.
いわゆるStatusと呼ばれるもの.
📝状態(計算機科学)
計算機科学における状態とは, 必要とされる計算の途中結果を含む, 値の時系列.
状態の導入によって, プログラムに時間の概念を与える.
📝状態変数
プログラムで状態遷移を表現する最も簡単な方法は, 変数に意味のある状態を定義して保存して管理する方法.
📝フラグ
flag. 最もシンプルな状態変数は, 俗にフラグと呼ばれるもの.
状態はon/offの2つ. これはbooleanの値(true/false)で表現することができる.
おそらく元々は回路設計だったりハードウェアレジスタから組込み開発での変数名になったのかと.
📝ステートマシン
状態変数が増えてくると, 複雑な判定条件でバグを生みやすくなっていく. そこでうまく状態変数を管理する方法としてステートマシンが用いられる.
see more: 📝ステートマシン(FSM)
🔖状態管理ライブラリ
状態管理Insights
そもそもシステムとコンポーネントとは
システムはそもそもアプリケーションが長い間起動しているときに必要となる考え. スクリプトやユーティリティの実行では必要ないのだ. それらは処理の終了がプログラムの終了でありリソースの開放である.
バックグラウンド実行をし続ける部分で構成されるアプリケーション, その部分が依存関係にあり初期化時に関係を構築するもの, これがシステム.
システム構築する部品=コンポーネントは単純化すれば, On/Offの操作によるStatefulなObjectである.
ref: Systems in Clojure