不変リスト (Immutable List)
定義
**不変リスト (Immutable List)**は、生成後に観測可能な値を変更しない性質である。実務では名称ではなく、利用者から観測できる保証と実装が守る条件をセットで定義する。
仕組みと具体的な規則
更新操作は元の値を書き換えず新しい値を返すため、共有時の競合と別名参照による予期せぬ変更を減らせる。たとえば注文処理なら、注文IDと現在状態を入力し、許可された状態遷移だけを適用して新状態または理由付きエラーを返す。この入出力をテストに固定すると、内部の保存方式を変更しても契約を検証できる。
適用判断
不変リスト (Immutable List)を導入する前に、解決対象となる変更理由または障害が実在するかを確認する。導入後は、責務の所有者が一つか、再試行・並行実行・部分失敗でも規則を維持できるか、呼び出し側が内部表現へ依存していないかをレビューする。
限界とトレードオフ
新しい境界には型、変換、検証、運用のコストが生じる。小さく変化しない処理では直接的な実装の方が読みやすい場合もある。性能、一貫性、拡張性のどれを優先したかを記録し、計測や実際の変更頻度に基づいて構造を見直す。