Tidy First?(経験主義的ソフトウェア設計)
概要
『Tidy First? ―個人で実践する経験主義的ソフトウェア設計』は Kent Beck(テスト駆動開発 / XP の提唱者)による著作で、コードの「整頓(Tidying)」を 小さく・経験主義的に 行うための考え方をまとめたものです。大規模なリファクタリングの前に、まず小さな整頓を積み重ねるアプローチを説きます。
中心的な問い:「Tidy First?(先に整頓する?)」
振る舞いを変える前に、まずコードを整頓すべきか? という問いに対し、状況に応じた判断基準を示します。整頓は 小さく、すぐ戻せる、振る舞いを変えない 変更として行うのが要点です。
整頓(Tidying)の例
- ガード節の追加
- デッドコードの削除
- 対称性をそろえる
- 説明的な変数・定数の導入
- 似た処理のグルーピング、順序の整理
経済性の観点
本書のもう一つの軸は、整頓を ソフトウェア設計の経済学 として捉える点です。
- 結合(Coupling)と凝集(Cohesion)が変更コストを左右する
- 「今整頓するコスト」と「将来の変更で得られる利益」をオプション理論的に天秤にかける
- 可逆な決定は早く、不可逆な決定は慎重に
関連トピック
- 小さなステップで進める姿勢は テスト駆動開発 と同じ精神
- 漸進的な改善は ソフトウェアアーキテクチャ の進化容易性に通じる
- AIコーディングでも「PR 1つ分」の小さな粒度が扱いやすい(AIコーディングアシスタント)
関連ページ
参考資料
- Tidy First? ―個人で実践する経験主義的ソフトウェア設計(Kent Beck)