設計とは、判断の軸を一本通すこと


設計の話になると、
よくこんな言葉が出てきます。

責務を分離する。
関心事を分ける。
疎結合にする。

これらはすべて、
設計において重要な考え方です。

しかし本書では、
それらを個別のテクニックとしては扱いません。

なぜなら、
それらはすべて 結果として現れるもの だからです。


判断が強い設計には「一本の軸」がある

良い設計を眺めると、
ある共通点があります。

それは、
判断の軸が一貫している ことです。

どの責務を分けるか。
どこにロジックを置くか。
どこで例外を吸収するか。

それらの判断が、
同じ方向を向いています。

一方で、
設計が崩れているコードでは、
判断の基準が場所ごとに違います。

ある場所では変更頻度を重視し、
別の場所では実装の楽さを優先し、
さらに別の場所では将来拡張を想定する。

軸が複数あると、設計は必ず歪みます。


軸がない設計は、すべて場当たりになる

判断の軸が明示されていない場合、
設計はどうなるでしょうか。

答えは単純です。
その場で一番納得しやすい判断が選ばれます。

今すぐ直せるか。
影響が少なそうか。
説明しやすいか。

これらは、
判断基準として間違ってはいません。

しかしそれが積み重なると、
判断同士が噛み合わなくなります。

結果として、
「なぜこうなっているのか分からない構造」 が生まれます。


設計の仕事は「選択肢を減らす」こと

設計というと、
選択肢を増やす行為だと思われがちです。

将来に備える。
拡張ポイントを作る。
何でもできる構造にする。

しかし実際には、
良い設計ほど、選択肢を減らします。

この変更は、ここに影響する。
この責務は、ここにしか書かない。
この種類の判断は、ここでまとめて行う。

判断の置き場所を固定すること
それが、設計の重要な役割です。


軸とは「何を守るか」の宣言である

判断の軸とは、
言い換えると「何を守るか」です。

変更のしやすさを守るのか。
理解のしやすさを守るのか。
失敗しにくさを守るのか。

すべてを同時に守ることはできません。

だから設計では、
何を優先し、
何を犠牲にするかを決めます。

設計とは、価値観の選択です。


軸があれば、判断は再利用できる

判断の軸が明確であれば、
すべての細かい判断を覚えておく必要はありません。

迷ったときは、
軸に照らして考えればよいからです。

この変更は、 守りたい価値に沿っているか。

この実装は、 判断の置き場所を壊していないか。

こうして、
判断は再現可能になります。

再現可能なのは、
テクニックではありません。

判断の基準です。


構造は、軸の副産物である

責務分離。
レイヤードアーキテクチャ。
モジュール分割。

これらはすべて、
判断の軸に従った結果として現れます。

軸が違えば、
同じ問題に対して、
まったく違う構造が選ばれることもあります。

それで構いません。

重要なのは、
なぜその構造なのかを説明できることです。


この章のまとめ

設計とは、
判断を増やす行為ではありません。

判断を、
一つの軸に集約する行為です。

軸があれば、
判断は再現できます。

軸がなければ、
設計は場当たりになります。

次の章では、
この「判断の軸」を、
どのように言語化し、共有するのかについて、
具体的に掘り下げていきます。