変更容易性
ソフトウェアの良し悪しを測る指標の一つ
ソフトウェア設計原則は変更容易性に通ず
『達人プログラマー』によると
この世の中のあらゆる設計原則はETC原則 (Easier To Change) を特殊化したもの
変更
仕様変更による修正や機能追加はもちろんのこと、技術的なコード変更、さらにバグ修正
システムを運用するうえで避けられないこと
本質的な変更
ビジネス要求の変更や追加要望などシステムドメインに関する変更
副次的な変更
プログラミング言語やランタイム、フレームワークやライブラリのバージョンアップなどの技術的な要素に起因する変更
システムを運用していく上で必要だが、多くの場合対応してもユーザにもたらす価値には寄与しない
しかし価値を低減させないように必要な変更
レイヤを分離するアーキテクチャパターン
レイヤードアーキテクチャやクリーンアーキテクチャ
ドメインレイヤのように本質的な変更のみ行うものと副次的な変更を受けるレイヤとに分離し、その依存方向をコントロールすることで副次的な変更がドメインレイヤに波及しないようにしている
捨てやすさ、disposability、腐敗防止層にも繋がる