柔軟なソフトウェア設計が厳格なドメインモデルを凌駕する

2025-09-08

この記事では、コードをドメインモデルに厳密に結び付けるという一般的なソフトウェア設計原則に異議を唱えています。著者は、厳格なデータベーススキーマや型制約などを通じて、無効な状態を過度に回避することに重点を置くことは、ソフトウェアの柔軟性を制限し、避けられない現実世界の例外に対処することを困難にすると主張しています。状態マシンと外部キー制約を例に、コア設計をシンプルに保ちながら、任意の状態遷移を許可する方法を示し、これによりソフトウェアの適応性と保守性が向上します。最終的に、著者は、進化する要件や予期せぬ状況に対処するために、ユーザー向けのソフトウェアでは無効な状態の表現を許可すべきだと主張しています。