設定値の変更は入力源から全consumerまでを一本の契約として設計する
テスト設計
設計
実装計画
設定管理
運用
原則
ハードコードを設定化したり、環境ごとに値を注入できるようにする変更では、変数名と既定値だけを決めても契約として不十分である。漏れやすいのは、同じ値を読むラッパーやヘルパー、複数の設定源が競合したときの後勝ち、複数項目間の制約、表記が違っても同じ値になる正規化である。
設計時は次を一続きで扱う。
- 契約には、許容範囲と正規化、複数項目間の不変条件、設定源の優先順位を明記する。
- 変更マップには、直接設定を読む箇所だけでなく、旧い固定値、ラッパー、ヘルパーを含む全consumerを列挙する。設定定義ファイルだけを変更対象と見なさない。
- 検証では、各不変条件と優先順位競合を別の失敗クラスとして用意し、入口で変えた値が末端のconsumerまで届くことを確認する。正規化後に同値になる境界も含める。
設定変更は局所的な定数置換ではなく、入力源から消費地点までの経路全体を変える境界契約として扱うと、環境差による黙った上書きや一部consumerだけ旧値を使い続ける退行を計画段階で検出しやすい。