refactor-legacy-code について
レガシーコードを保守する開発者向けのリファクタリングスキルです。既存の動作を維持しながら、テストを伴う段階的な変更で可読性と保守性を高めます。
主な機能
- 01コードと複雑度の評価
- 02テストによる安全網の整備
- 03小さな段階に分けたリファクタリング
- 04パターンと API の更新
- 05依存関係の削減
活用シーン
- 01非推奨のコードパターンの更新
- 02既存コードベースの技術的負債の削減
- 03モノリシックなコードから再利用可能な部分を抽出
- 04新機能開発に向けたコードの準備
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill refactor-legacy-codeインストール後、Claude Code で/refactor-legacy-codeを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/benefits-achieved.mdcode-assessment.mdcomplete-refactoring-example.mdestablish-safety-net.mdincremental-refactoring.mdmodernize-patterns.mdreduce-dependencies.mdscripts/scaffold-tests.shtemplates/test-template.js詳細
レガシーコードのリファクタリング
目次
概要
このスキルでは、既存の機能を維持しながら、保守性、可読性、パフォーマンスを向上させるために、レガシーコードを体系的にリファクタリングできます。包括的なテストを実施し、安全にリファクタリングするための業界のベストプラクティスに従います。
使用する場面
- 古くなったコードパターンや非推奨の API を最新化するとき
- 既存のコードベースの技術的負債を削減するとき
- コードの可読性と保守性を向上させるとき
- モノリシックなコードから再利用可能なコンポーネントを抽出するとき
- 新しい言語機能やフレームワークにアップグレードするとき
- 新機能の開発に向けてコードを準備するとき
クイックスタート
まず、レガシーコードを分析して、次の点を把握します。
# Review the codebase structure
tree -L 3 -I 'node_modules|dist|build'
# Check for outdated dependencies
npm outdated # or pip list --outdated, composer outdated, etc.
# Identify code complexity hotspots
# Use tools like:
# - SonarQube for code smells
# - eslint for JavaScript
# - pylint for Python
# - RuboCop for Ruby
リファレンスガイド
references/ ディレクトリにある詳細な実装ガイド:
| ガイド | 内容 |
|---|---|
| コードの評価 | コードの評価 |
| 安全網の構築 | 安全網の構築 |
| 段階的なリファクタリング | 段階的なリファクタリング |
| パターンの最新化 | パターンの最新化 |
| 依存関係の削減 | 依存関係の削減、ドキュメント |
| リファクタリングの完全な例 | リファクタリングの完全な例 |
| 達成した効果 | 達成した効果 |
ベストプラクティス
✅ 実施すること
- 段階的にリファクタリングする:小さく、テスト可能な変更にします
- 頻繁にテストを実行する:リファクタリングの各ステップの後に実行します
- こまめにコミットする:論理的で、独立したコミットを作成します
- 既存のテストを通過させ続ける:機能を壊さないようにします
- IDE のリファクタリングツールを使う:手動で編集するより安全です
- コードカバレッジを確認する:リファクタリングしたコードがテストで網羅されていることを確認します
- 判断の理由を記録する:何をしたかだけでなく、なぜそうしたかを記録します
- ピアレビューを依頼する:新たな視点で問題を見つけてもらいます
❌ 避けること
- リファクタリングと新機能を混在させる:関心事を分離します
- テストなしでリファクタリングする:変更による不具合を招きます
- 振る舞いを変える:リファクタリングでは機能を維持します
- 大規模なまとまりをリファクタリングする:リスクとレビューの難易度が高まります
- コードの臭いを無視する:体系的に対処します
- ドキュメントを省略する:将来の保守担当者には背景情報が必要です
コメント
Markdown 対応