リファクタリングAI設計
リファクタリング: AIに「きれいにして」と言う前に知るべき5つの原則
ChatGPTやClaudeに「このコードをリファクタリングして」と頼むと、確かにきれいなコードが返ってきます。
でも、それって本当に「良く」なっているのでしょうか?
AIのリファクタリングは「表面的」
AIは以下のことが得意です。
- 変数名を意味のあるものに変える
- ネストを浅くする
- 長い関数を分割する
でも、以下のことは苦手です。
- ドメインロジックの構造的な問題を見抜く
- 将来の変更容易性を考慮した分割
- ビジネスルールと実装詳細の分離
Martin Fowlerの『リファクタリング』を読むと、これらが「なぜ重要か」がわかります。
知っておくべき5つの原則
1. 小さなステップで進める
リファクタリングは一気にやらない。テストが通る状態を保ちながら、小さな変更を積み重ねる。
2. 動作を変えない
新機能の追加とリファクタリングは別のコミットにする。混ぜると何が原因で壊れたかわからなくなる。
3. 重複を見つけたら抽出する
「3回目に現れたら抽出せよ」— DRY原則。ただし、表面的に似ているだけで本質が違うコードを無理に統一するな。
4. 名前が全て
良い名前は、コメントなしでコードを説明する。processDataではなくcalculateMonthlyRevenue。
5. テストがないコードはリファクタリングするな
テストなしのリファクタリングは「祈り」。まずテストを書く、それからリファクタリングする。
CodeSenseiでリファクタリングを学ぶ
CodeSenseiでは、あなたのコードを貼り付けるだけで「ここから『リファクタリング』のどの章が体感できるか」をAIが教えてくれます。
AIに「きれいにして」と言うのではなく、なぜきれいにすべきかを理解するのが目的です。