第12部: 判断ガイド¶
このWikiの総仕上げ——「いつ・何を根拠に選ぶか」の判断フロー集です。Yes/Noの二分ではなく、判断材料・例外・トレードオフを明示します。迷ったときに開く逆引きの章です。
ページ一覧¶
| ページ | 扱う判断 |
|---|---|
| クラスを分けるべきか | 分割の基準と、分割しすぎの見分け方 |
| インターフェースを作るべきか | 抽象を挟む価値の判定 |
| 継承かコンポジションか | is-a検証と実務フロー |
| 抽象化すべきか・デザインパターンを使うべきか | 「3回ルール」と破綻シグナル |
| イベント・依存性注入・Singleton の判断 | 通知と依存配りの選択 |
| C++の選択(テンプレートか仮想関数か/値渡しか参照渡しか/unique_ptrかshared_ptrか/配列かvectorか/構造体かクラスか) | C++固有の5大選択 |
| 最適化すべきか・リファクタリングすべきか | 投資判断としての改善 |
仕上げに 演習。
全判断に共通する3原則¶
- 可逆性で仕分ける: 後から安く変えられる決定は素朴に倒す(YAGNI)。変えるのが高い決定(セーブ形式、公開API、データレイアウト)だけ先に考える
- 証拠を要求する: 「いつか必要かも」ではなく「既に2回起きた」「計測で出た」を根拠にする
- 選ばなかった案を書き残す: 判断はチームの共有財産。「なぜswitchのままにしたか」の一行コメントが将来の再判断を安くする
全体目次 | 次: クラスを分けるべきか