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