Claude Codeで不要コードを検出する方法
- 作成日 2026.05.25
- その他
Claude Codeを使うと、プロジェクト内に残っている不要コードを効率的に検出できます。
未使用関数、古い実装、不要な依存、到達不能コードなどを継続的に分析することで、コードベースの肥大化や保守コスト増加を防ぎやすくなります。
不要コードとは
不要コードとは、現在のシステムで利用されていないコードや、保守価値が低くなったコードを指します。
代表的な例は以下です。
・未使用関数
・未使用クラス
・使われていない変数
・古いFeature Flag
・コメントアウトコード
・到達不能コード
・不要なimport
・未使用ライブラリ
・削除済み機能の残骸
・古いAPI互換コード
不要コードが増えると、コード理解や保守作業が難しくなります。
Claude Codeで不要コードを検出するメリット
Claude Codeでは、単純な静的解析だけでなく、コード全体の文脈を踏まえて不要コード候補を分析できます。
特に以下のような分析に向いています。
・実際に呼ばれていない処理
・責務を失ったクラス
・古い設計パターン
・重複ロジック
・暫定実装の放置
・Feature Flagの残骸
・非推奨コードの残存
継続的に分析することで、コードベースを軽量化しやすくなります。
CLAUDE.mdに不要コード検出ルールを書く
不要コード検出では、チーム独自のルールを定義しておくことが重要です。
CLAUDE.mdへ分析方針を書くことで、Claude Codeが継続的に検出しやすくなります。
# Dead Code Rules
- 未使用関数を検出する
- コメントアウトコードを禁止する
- TODO放置を検出する
- 古いFeature Flagを検出する
- 未使用importを検出する
- 到達不能コードを検出する
- 削除済み機能の残骸を検出する
- 不要な互換コードを検出するプロジェクト固有の不要コード定義を明文化すると、検出精度が向上します。
不要コード検出用のプロンプト例
Claude Codeへ分析依頼する際は、何を不要コードとして扱うかを具体的に指定します。
このコードベースの不要コードを分析してください。
以下を重点的に確認してください。
- 未使用関数
- 未使用クラス
- 未使用import
- コメントアウトコード
- 到達不能コード
- 古いFeature Flag
- 暫定実装
- 削除済み機能の残骸
- 重複ロジック
削除可能性が高い順に出力してください。
影響範囲も説明してください。影響範囲も出力させることで、安全に削除しやすくなります。
未使用関数を検出する
不要コードとして最も多いのが未使用関数です。
Claude Codeでは、以下の観点から分析できます。
・呼び出し箇所の有無
・exportされているだけの関数
・古いUtility関数
・リファクタリング後の残骸
・テスト専用だった処理
特に大規模リファクタリング後は、未使用関数が大量に残るケースがあります。
コメントアウトコードを検出する
コメントアウトされたコードは、保守性低下の原因になりやすい要素です。
以下のようなコードは、削除候補として確認する価値があります。
// old logic
// const result = legacyProcess(data);
// temporary disable
// sendNotification();Gitで履歴を確認できるため、多くの場合は削除したほうが管理しやすくなります。
古いFeature Flagを整理する
Feature Flagは便利ですが、長期間放置すると不要コードの温床になります。
Claude Codeでは、以下のような問題を分析できます。
・常にtrueのFlag
・常にfalseのFlag
・使用期限切れFlag
・削除済み機能の分岐
・古いABテストコード
不要な分岐が増えると、コード理解が難しくなります。
未使用importや不要依存を検出する
使われていないimportやライブラリも不要コードの一種です。
特に以下を定期的に確認すると効果的です。
・未使用import
・未使用npm package
・不要Gem
・古いSDK
・非推奨ライブラリ
依存関係が増えるほど、ビルド時間や脆弱性リスクも増加します。
到達不能コードを分析する
return後や例外送出後の処理は、到達不能コードとして残る場合があります。
return result;
console.log("never reached");Claude Codeでは、分岐構造や条件式を分析し、実行されないコードを検出できます。
到達不能コードは、仕様誤解の原因になるケースがあります。
古い互換コードを整理する
バージョン互換のために追加したコードが、不要になっている場合があります。
たとえば以下のようなケースです。
・旧API互換処理
・古いブラウザ対応
・旧DBスキーマ対応
・旧バージョンSDK分岐
サポート終了後も残っているケースが多いため、定期確認が重要です。
Pull Requestで不要コードを防止する
GitHub ActionsとClaude Codeを組み合わせると、新しい不要コードをPR段階で検出できます。
name: Dead Code Review
on:
pull_request:
types: [opened, synchronize]
jobs:
dead-code:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Claude Dead Code Review
run: |
claude review --focus dead-code未使用コードやコメントアウトコードをPR時点で防止しやすくなります。
安全に不要コードを削除する方法
不要コード削除では、安全性を最優先にする必要があります。
特に以下に注意します。
・テストを先に実行する
・段階的に削除する
・ログを確認する
・利用状況を監視する
・Feature Flag削除は影響範囲を確認する
・公開APIは互換性を確認する
特に外部公開APIは、未使用に見えても外部利用されている可能性があります。
定期分析を自動化する
不要コードは継続的に増えるため、定期分析が重要です。
週次や月次でClaude Codeを実行し、不要コードレポートを生成する運用も効果的です。
たとえば以下をレポート化できます。
・未使用関数一覧
・TODO件数推移
・未使用依存一覧
・巨大ファイルランキング
・コメントアウトコード件数
継続監視することで、コードベースの肥大化を防ぎやすくなります。
人間レビューとの使い分け
Claude Codeは不要コード検出に便利ですが、削除判断は慎重に行う必要があります。
特に以下は人間判断が重要です。
・外部利用有無
・将来利用予定
・運用上の必要性
・障害時切り戻し用途
・リリースタイミング
AIは削除候補を提示し、人間が最終判断する運用が安全です。
まとめ
Claude Codeを使うと、不要コードを効率的に検出できます。
未使用関数、コメントアウトコード、古いFeature Flag、不要依存などを継続分析することで、保守しやすいコードベースを維持できます。
CLAUDE.mdにルールを定義し、GitHub Actionsと組み合わせれば、不要コードをPR段階で防止することも可能です。
定期的に不要コードを整理することで、開発速度や保守性を長期的に改善できます。
-
前の記事
Claude Codeで命名規則を統一する方法 2026.05.22
-
次の記事
Claude Codeで例外処理を改善する方法 2026.05.26
コメントを書く