mcpField
R
refactor

refactor

github.com/pproenca開発220644 回インストール11 週間前に更新
リポジトリ

refactor について

FowlerのリファクタリングカタログとClean Codeの原則に基づく、AIエージェントとLLM向けのリファクタリング指針です。構造、依存関係、命名、条件分岐などを扱う43項目を優先度順にまとめています。

主な機能

  1. 018カテゴリの43項目
  2. 02優先度付きの指針
  3. 03構造と分解の実践方法
  4. 04依存関係と結合の指針
  5. 05解説と例を含む個別資料

活用シーン

  1. 01長いメソッドや大きなクラスの分割
  2. 02コンポーネント間の結合低減
  3. 03入れ子になった条件分岐の簡素化
  4. 04コードスメルやアンチパターンの確認

インストール

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

$npx skills add https://github.com/pproenca/dot-skills --skill refactor

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

AGENTS.md
metadata.json
README.md
assets/templates/
_template.md
references/
_sections.md
cond-consolidate.md
cond-decompose.md
cond-guard-clauses.md
cond-lookup-table.md
cond-polymorphism.md
cond-special-case.md
couple-dependency-injection.md
couple-feature-envy.md
couple-hide-delegate.md
couple-interface-segregation.md
couple-preserve-whole-object.md
couple-remove-middle-man.md
data-encapsulate-collection.md
data-encapsulate-record.md
data-replace-primitive.md
data-replace-temp-with-query.md
data-split-variable.md
error-custom-exceptions.md
error-exceptions-over-codes.md
error-fail-fast.md
error-separate-concerns.md
micro-inline-variable.md
micro-remove-dead-code.md
micro-rename-for-clarity.md
micro-simplify-expressions.md

詳細

Fowler/Martin のコードリファクタリングのベストプラクティス

Martin Fowler のカタログと Clean Code の原則に基づく、包括的なコードリファクタリングガイドです。AI エージェントと LLM 向けに設計されています。8 つのカテゴリにわたる 43 のルールを収録し、影響度順に優先順位を付けて、自動リファクタリングとコード生成を導きます。

適用するタイミング

以下の場合に、このガイドラインを参照してください。

  • 保守性を高めるために既存のコードをリファクタリングするとき
  • 長いメソッドや大きなクラスを分解するとき
  • コンポーネント間の結合を減らすとき
  • 複雑な条件分岐を簡素化するとき
  • コードの臭いやアンチパターンについてコードレビューするとき

優先度別のルールカテゴリ

優先度カテゴリ影響度プレフィックス
1構造と分解重大struct-
2結合と依存関係重大couple-
3命名と明確さ高name-
4条件分岐高cond-
5抽象化とパターン中〜高pattern-
6データ構成中data-
7エラー処理中error-
8マイクロリファクタリング低micro-

クイックリファレンス

1. 構造と分解(重大)
  • struct-extract-method - 長い関数をメソッドとして抽出する
  • struct-single-responsibility - 単一責任の原則を適用する
  • struct-extract-class - 大きなクラスからクラスを抽出する
  • struct-compose-method - 読みやすい処理の流れになるようメソッドを構成する
  • struct-function-length - 関数を 20 行未満に保つ
  • struct-replace-method-with-object - メソッドをメソッドオブジェクトに置き換える
  • struct-parameter-object - パラメーターオブジェクトを導入する
2. 結合と依存関係(重大)
  • couple-dependency-injection - 依存性注入を使用する
  • couple-hide-delegate - 委譲先を隠して結合を減らす
  • couple-remove-middle-man - 過剰な場合は仲介役を取り除く
  • couple-feature-envy - メソッドを移動してフィーチャーエンビーを解消する
  • couple-interface-segregation - インターフェース分離の原則を適用する
  • couple-preserve-whole-object - フィールドではなくオブジェクト全体を渡す
3. 命名と明確さ(高)
  • name-intention-revealing - 意図が伝わる名前を使用する
  • name-avoid-abbreviations - 略語や頭字語を避ける
  • name-consistent-vocabulary - 一貫した用語を使用する
  • name-searchable-names - 検索しやすい名前を使用する
  • name-avoid-encodings - 名前に型のエンコーディングを含めない
4. 条件分岐(高)
  • cond-guard-clauses - ネストした条件分岐をガード節に置き換える
  • cond-polymorphism - 条件分岐をポリモーフィズムに置き換える
  • cond-decompose - 複雑な条件分岐を分解する
  • cond-consolidate - 重複する条件分岐の断片を統合する
  • cond-special-case - 特殊ケースオブジェクトを導入する
  • cond-lookup-table - 条件分岐をルックアップテーブルに置き換える
5. 抽象化とパターン(中〜高)
  • pattern-strategy - アルゴリズムのバリエーションに応じてストラテジーを抽出する
  • pattern-template-method - 共通の骨格にテンプレートメソッドを使用する
  • pattern-factory - 複雑なオブジェクト生成にファクトリーを使用する
  • pattern-open-closed - 開放/閉鎖原則を適用する
  • pattern-composition-over-inheritance - 継承よりコンポジションを優先する
  • pattern-extract-superclass - 共通の振る舞いを持つスーパークラスを抽出する
6. データ構成(中)
  • data-encapsulate-collection - コレクションをカプセル化する
  • data-replace-primitive - プリミティブ型をオブジェクトに置き換える
  • data-encapsulate-record - レコードをクラスにカプセル化する
  • data-split-variable - 複数回代入される変数を分割する
  • data-replace-temp-with-query - 一時変数をクエリに置き換える
7. エラー処理(中)
  • error-exceptions-over-codes - エラーコードではなく例外を使用する
  • error-custom-exceptions - ドメイン固有の例外型を作成する
  • error-fail-fast - 事前条件を設けて早期に失敗させる
  • error-separate-concerns - エラー処理をビジネスロジックから分離する
8. マイクロリファクタリング(低)
  • micro-remove-dead-code - デッドコードを削除する
  • micro-inline-variable - 単純な変数をインライン化する
  • micro-simplify-expressions - ブール式を簡素化する
  • micro-rename-for-clarity - 明確さを高める名前に変更する

使用方法

詳しい説明とコード例については、各リファレンスファイルを参照してください。

完全版ドキュメント

すべてのルールを展開した完全なガイドについては、AGENTS.mdを参照してください。

コメント