refactoring-code について
動作を変えずにコード構造を整える開発者向けリファクタリングスキルです。小さな変更とテストによる確認を重視し、一般的なリファクタリングや安全規則を扱います。
主な機能
- 01変更前後のテスト実行
- 02Grepによる依存関係と使用箇所の確認
- 03小さな段階でのリファクタリング
- 04一般的なリファクタリングの指針
- 05コード変更の安全規則
活用シーン
- 01長い処理からメソッドを抽出
- 02コード全体でのシンボル名変更
- 03参照確認後のコード削除
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dralgorhythm/ claude-agentic-framework --skill refactoring-codeインストール後、Claude Code で/refactoring-codeを入力して読み込まれたか確認します。
詳細
コードのリファクタリング
リファクタリングモード
リファクタリングでは、振る舞いを変えずに構造を変更します。変更前も変更後も、必ずテストが通る状態にしてください。
ワークフロー
- テストが成功していること:開始前にすべてのテストが通ることを確認します
- 分析する:Grep を使って依存関係を把握します
- 小さな手順で進める:一度に小さな変更を一つ行います
- 使用箇所を確認する:変更前に Grep を使ってすべての使用箇所を見つけます
- こまめにコミットする:リファクタリングが成功するたびにコミットします
- テストが成功していること:変更のたびにテストが引き続き通ることを確認します
よくあるリファクタリング
メソッドの抽出
コードブロックが一つの処理を行っている場合は、名前を付けたメソッドに抽出します。
- Grep を使って、抽出しても呼び出し元に影響しないことを確認します
- メソッドを抽出します
- テストを実行します
わかりやすい名前への変更
名前から意図がわかるようにします。
- Grep を使って、すべての使用箇所を確認します
- Edit の replace_all を使って、コードベース全体の名前を変更します
- 参照漏れがないことを確認します
デッドコードの削除
- Grep を使って、コードが使用されていないことを確認します
- 参照がゼロなら、安全に削除できます
- 参照がある場合は、使用状況を把握するために追跡します
対処すべきコードの不吉な臭い
- 長すぎるメソッド:小さなメソッドに抽出します
- 長すぎるパラメーターリスト:パラメーターオブジェクトを導入します
- 重複コード:共通関数に抽出します(Grep を使って重複箇所を見つけます)
- 機能への執着:メソッドを、最も頻繁に利用するクラスに移します
- データの塊:関連するデータをオブジェクトにまとめます
- プリミティブ型への執着:プリミティブ型を値オブジェクトに置き換えます
安全のためのルール
- リファクタリングと機能追加を同時に行わないでください
- 削除または名前変更の前に、必ず Grep を使ってすべての使用箇所を見つけてください
- 変更のたびにテストを実行してください
- 広範囲な検索と置換ではなく、対象を絞った Edit 操作を使ってください
- 動作する状態をこまめにコミットしてください
コメント
Markdown 対応