状態管理
難しい。
バグの温床
難しさの例
キャッシュ
が効いていて開発者の意図していない挙動をする
どこからでもアクセスできる(グローバルなスコープを持つ)、どのモジュールがどのタイミングでどう書き換えたかわからない変数
design patterns - Why is Global State so Evil? - Software Engineering Stack Exchange
難しさとの闘いの例
JSのモジュールの歴史:
JavaScriptのmodules#5acc8b1c3f44250000a50358
カプセル化
なるべく状態はもたないように設計するべき
kadoyau.icon*7
#ソフトウェア設計
状態を初期化しても問題のない設計