世界を記述するということである。
と考えないと今時の大規模システムを、仕様変更に柔軟には書けない。
その世界を記述するためのヒントが、ドメイン駆動やモジュール化の手法だ。
この切り口、洞察が巧妙であればあるほど、柔軟で大きな仕組みにできる。
これはSFなどの「シェアワールド」手法に近い。
世界のルール、構成物、登場人物、魔法や力の原動力、引き出し方等々、固めすぎないが世界の統一感が持てる程度には「制約」が必要だ。
これがうまく設計できると、書き手が増えても破綻しづらく、読み手、使い手も楽しめる。
あるタイミングで追加の制約を導入する必要を検討しなければならなくなったらどうするか?
そう言う場合の振る舞いは、特にシステム系の読み物としては「C++の設計と進化」を勧めたい。