概要
AI駆動開発における技術的負債の弊害を指摘し、「目的・目標・手段」の一貫性を重視した設計思想と、AIを効果的に活用した具体的なリファクタリング手法を提示している。
詳細内容
技術的負債はAIによるコード生成や変更の精度を著しく低下させるため、AI時代の開発において「変更容易性」の向上は不可欠である。本資料では、負債を「現状と理想構造のギャップ」と定義し、解消に向けた以下の核となるアプローチを解説している。
1. **目的・目標・手段のフレームワーク**: ソフトウェアの要求(目的)、仕様(目標)、コード(手段)を一致させる設計(カプセル化や単一責任の原則)が重要である。
2. **AIとツールの使い分け**: AIにはコードの目的分析やテストコード作成、純粋関数の抽出候補の列挙を任せ、実際のリネームやメソッド抽出などの破壊的変更はIDEの静的解析機能を用いることで、速度と正確性を両立する。
3. **巨大クラスの解体**: 「コピー&デリート法」により、多目的が混在する巨大クラスを各目的ごとのクラスへ段階的に分離する。
4. **ドメインモデリングとストラングラーパターン**: イベントストーミング等で理想のドメインモデルを設計し、ストラングラーフィグパターンを用いて新旧モジュールを段階的に置き換えていく戦略を推奨している。