- 壊れやすさは、構造ではなく判断の偏りから生まれる
- 典型的な三つの偏り
- 「今きれいであること」を優先しすぎる
- 「将来どうせ変わる」を理由に判断を放棄する
- 「自分が分かっている」前提で判断を外に漏らす
- 健全な設計は、偏りを自覚して選び直すことから始まる
- 壊れやすさに気づける設計者になる
ここまでの章で、設計とは「判断をどこに閉じ込めるか」であり、 そして判断は必ず変わる、という前提に立つ必要があることを見てきました。
では、次の問いに進みます。
なぜ、現場では壊れやすい設計が繰り返し生まれてしまうのでしょうか。
この章では、技術力不足や経験不足といった分かりやすい理由ではなく、 設計者が無意識に選んでしまう判断の置き方 に注目します。
これは誰かを責める章ではありません。 むしろ、自分自身が何度も陥ってきたパターンを言語化する章です。
壊れやすさは、構造ではなく判断の偏りから生まれる
壊れやすい設計を見ると、つい構造に目が向きがちです。
- クラスが大きすぎる
- 責務が多すぎる
- 共通化しすぎている
しかし、これらはすべて「結果」にすぎません。
その前段には必ず、
- どの判断を重要だと見なしたか
- どの判断を軽視したか
- どの判断を将来に押し付けたか
という偏りがあります。
壊れやすい設計とは、 一部の判断だけを過度に優先した設計 だと言い換えることができます。
典型的な三つの偏り
壊れやすい設計に共通する判断の偏りは、いくつかの型に分けられます。 ここでは特に遭遇頻度の高い三つを取り上げます。
「今きれいであること」を優先しすぎる
最もよくあるのが、この偏りです。
- 重複は悪だ
- 抽象化は善だ
- 共通化すれば美しい
こうした価値観自体は間違っていません。 問題は、将来の判断の変化よりも、現在の見た目の整合性を優先してしまう ことです。
結果として、
- まだ揃っていないものを無理に揃える
- 違いが見えていない段階で共通化する
- 変更理由の異なる処理を一箇所に集める
といった構造が生まれます。
これは「きれいに設計したつもり」で壊れやすくする、典型例です。
「将来どうせ変わる」を理由に判断を放棄する
逆方向の偏りも存在します。
- どうせ仕様は変わる
- 先のことは分からない
- 今はとりあえず動けばいい
この考え方が行き過ぎると、 判断そのものを行わない設計 になります。
- 境界を引かない
- 責務を定義しない
- 型や制約を置かない
結果として、 変更が起きた瞬間に「全部を考え直す」必要が出てきます。
「将来に備えない」のではなく、 将来に備えるための最小限の判断すら閉じ込めていない 状態です。
「自分が分かっている」前提で判断を外に漏らす
三つ目は、設計者本人には気づきにくい偏りです。
- これは普通こうだよね
- このクラスはそういう前提だから
- 使う側が気をつければいい
こうした前提は、コードの外に存在します。
つまり、
- 型で表現されない
- 境界として切り出されない
- 名前にも表れない
判断です。
この状態では、 設計は設計者の頭の中にしか存在しません。
人が変わった瞬間、 あるいは時間が経った瞬間に、 設計は事実上失われます。
健全な設計は、偏りを自覚して選び直すことから始まる
ここまで挙げた三つの偏りは、 どれか一つが絶対に悪いというものではありません。
- 今を優先する判断が必要な場面もある
- 将来を見ない決断が合理的なこともある
- 暗黙知で進めた方が速い局面もある
問題は、 その偏りを自覚しないまま固定化してしまうこと です。
設計とは、 毎回バランスを取り直す行為です。
- 今と将来
- 明示と暗黙
- 柔軟性と制約
これらの間で、 「今回はどこに判断を置くか」を選び続けることが設計です。
壊れやすさに気づける設計者になる
壊れやすい設計を完全に避けることはできません。
しかし、
- なぜ今この設計が壊れやすいのか
- どの判断が偏っているのか
- 次に変わるとしたらどこか
を説明できる設計者になることはできます。
その時点で、 設計は「失敗」ではなく「途中経過」になります。
次の章では、 こうした壊れやすさとどう付き合い、 どう回収していくかについて掘り下げていきます。
ここから先は、 設計を壊す話 です。