以下に該当する場合にリファクタリングを検討する.
- 同じ処理が 3 箇所以上に重複している
- 1 つの関数が複数の責務を持っている
- 関数の引数が 5 つ以上になっている
- テストが書きにくい構造になっている
- 機能実装の完了後(
/implement の Phase 3)に行う
- 機能追加とリファクタリングは同一コミットに混ぜない
- テストが通っている状態を維持しながら変更する
- 外部から見た振る舞い(入出力)を変えない
- 変更前にテストを実行し,変更後にも同じテストが通ることを確認する
- 動いているコードの「見た目だけ」の書き換え(Ruff が自動で対応する範囲)
- 将来の要件を見越した過度な抽象化
- 使われていないコードの温存(不要なら削除する)