mcpField
R
refactoring-code

refactoring-code

github.com/dralgorhythm開発12867 回インストール14 週間前に更新
リポジトリ

refactoring-code について

動作を変えずにコード構造を整える開発者向けリファクタリングスキルです。小さな変更とテストによる確認を重視し、一般的なリファクタリングや安全規則を扱います。

主な機能

  1. 01変更前後のテスト実行
  2. 02Grepによる依存関係と使用箇所の確認
  3. 03小さな段階でのリファクタリング
  4. 04一般的なリファクタリングの指針
  5. 05コード変更の安全規則

活用シーン

  1. 01長い処理からメソッドを抽出
  2. 02コード全体でのシンボル名変更
  3. 03参照確認後のコード削除

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/dralgorhythm/claude-agentic-framework --skill refactoring-code

インストール後、Claude Code で/refactoring-codeを入力して読み込まれたか確認します。

詳細

コードのリファクタリング

リファクタリングモード

リファクタリングでは、振る舞いを変えずに構造を変更します。変更前も変更後も、必ずテストが通る状態にしてください。

ワークフロー

  • テストが成功していること:開始前にすべてのテストが通ることを確認します
  • 分析する:Grep を使って依存関係を把握します
  • 小さな手順で進める:一度に小さな変更を一つ行います
  • 使用箇所を確認する:変更前に Grep を使ってすべての使用箇所を見つけます
  • こまめにコミットする:リファクタリングが成功するたびにコミットします
  • テストが成功していること:変更のたびにテストが引き続き通ることを確認します

よくあるリファクタリング

メソッドの抽出

コードブロックが一つの処理を行っている場合は、名前を付けたメソッドに抽出します。

  1. Grep を使って、抽出しても呼び出し元に影響しないことを確認します
  2. メソッドを抽出します
  3. テストを実行します
わかりやすい名前への変更

名前から意図がわかるようにします。

  1. Grep を使って、すべての使用箇所を確認します
  2. Edit の replace_all を使って、コードベース全体の名前を変更します
  3. 参照漏れがないことを確認します
デッドコードの削除
  1. Grep を使って、コードが使用されていないことを確認します
  2. 参照がゼロなら、安全に削除できます
  3. 参照がある場合は、使用状況を把握するために追跡します

対処すべきコードの不吉な臭い

  • 長すぎるメソッド:小さなメソッドに抽出します
  • 長すぎるパラメーターリスト:パラメーターオブジェクトを導入します
  • 重複コード:共通関数に抽出します(Grep を使って重複箇所を見つけます)
  • 機能への執着:メソッドを、最も頻繁に利用するクラスに移します
  • データの塊:関連するデータをオブジェクトにまとめます
  • プリミティブ型への執着:プリミティブ型を値オブジェクトに置き換えます

安全のためのルール

  1. リファクタリングと機能追加を同時に行わないでください
  2. 削除または名前変更の前に、必ず Grep を使ってすべての使用箇所を見つけてください
  3. 変更のたびにテストを実行してください
  4. 広範囲な検索と置換ではなく、対象を絞った Edit 操作を使ってください
  5. 動作する状態をこまめにコミットしてください

コメント