For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
メインナビゲーション
Theme
Codex

Codex use case

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

動作を変えずにデッドコードを削除し、古い実装パターンを更新します。

Difficulty Advanced
Time horizon 1h

Codex を使い、レビューしやすい小さな単位でリファクタリングを進めます。デッドコードを削除し、肥大化したファイルを整理し、重複するロジックをまとめ、古い実装パターンを更新します。

Best for

  • デッドコード、肥大化したモジュール、重複するロジック、実態に合わなくなった抽象化が原因で、日常的な変更に手間がかかるコードベース
  • フレームワークや技術スタックを移行せずに、既存のコードを改修する必要があるチーム

Contents

    ← All use cases

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

    動作を変えずにデッドコードを削除し、古い実装パターンを更新します。

    Codex を使い、レビューしやすい小さな単位でリファクタリングを進めます。デッドコードを削除し、肥大化したファイルを整理し、重複するロジックをまとめ、古い実装パターンを更新します。

    Advanced
    1h

    Codex を使い、レビューしやすい小さな単位でリファクタリングを進めます。デッドコードを削除し、肥大化したファイルを整理し、重複するロジックをまとめ、古い実装パターンを更新します。

    Advanced
    1h

    Best for

    • デッドコード、肥大化したモジュール、重複するロジック、実態に合わなくなった抽象化が原因で、日常的な変更に手間がかかるコードベース
    • フレームワークや技術スタックを移行せずに、既存のコードを改修する必要があるチーム

    Skills & Plugins

    • 変更をマージする前に、セキュリティに影響しうるコードの整理、依存関係の変更、認証フロー、外部に公開されている箇所をレビューします。
    • 実績のある改修パターンやレビュー用チェックリスト、変更前後の動作が一致することを確かめる手順を、リポジトリやチームで再利用できるスキルにまとめます。
    Skill Why use it
    Security Best Practices 変更をマージする前に、セキュリティに影響しうるコードの整理、依存関係の変更、認証フロー、外部に公開されている箇所をレビューします。
    Skill Creator 実績のある改修パターンやレビュー用チェックリスト、変更前後の動作が一致することを確かめる手順を、リポジトリやチームで再利用できるスキルにまとめます。

    Starter prompt

    このコードベースをリファクタリングし、古くなった実装を更新してください。 要件: - 機能変更を明示的に依頼した場合を除き、現在の動作を維持してください。 - まず、変更の妨げになっているデッドコード、重複する処理経路、肥大化したモジュール、実態に合わなくなった抽象化、古い実装パターンを特定してください。 - 提案する変更ごとに、現在の動作、コードの構造をどう改善するか、動作が変わっていないことをどう検証するかを示してください。 - デッドコードの削除、制御フローの簡素化、ヘルパー関数の抽出など、レビューしやすい小さな単位に作業を分けてください。古い実装パターンを置き換える場合は、リポジトリの現在の規約に合わせてください。 - リファクタリングに必要な場合を除き、公開 API は変更しないでください。 - フレームワークの移行、依存パッケージのアップグレード、API の変更、アーキテクチャの変更のうち、別の移行タスクに切り分けるべきものを明示してください。 - 作業範囲が広い場合は、実装前に用意すべきドキュメント、仕様書、変更前後の動作が一致することを確かめるための検証項目を提案してください。 以上を踏まえて、作業計画を提案してください。
    このコードベースをリファクタリングし、古くなった実装を更新してください。 要件: - 機能変更を明示的に依頼した場合を除き、現在の動作を維持してください。 - まず、変更の妨げになっているデッドコード、重複する処理経路、肥大化したモジュール、実態に合わなくなった抽象化、古い実装パターンを特定してください。 - 提案する変更ごとに、現在の動作、コードの構造をどう改善するか、動作が変わっていないことをどう検証するかを示してください。 - デッドコードの削除、制御フローの簡素化、ヘルパー関数の抽出など、レビューしやすい小さな単位に作業を分けてください。古い実装パターンを置き換える場合は、リポジトリの現在の規約に合わせてください。 - リファクタリングに必要な場合を除き、公開 API は変更しないでください。 - フレームワークの移行、依存パッケージのアップグレード、API の変更、アーキテクチャの変更のうち、別の移行タスクに切り分けるべきものを明示してください。 - 作業範囲が広い場合は、実装前に用意すべきドキュメント、仕様書、変更前後の動作が一致することを確かめるための検証項目を提案してください。 以上を踏まえて、作業計画を提案してください。

    はじめに

    使われていないコードや重複したロジック、実態に合わなくなった抽象化、肥大化したファイル、古い実装パターンがコードベースに蓄積すると、変更のたびに余計な手間がかかります。そのような場合は、リファクタリングで技術的負債を減らすことを検討してください。リファクタリングでは、技術スタックの移行にまで作業を広げず、既存のシステムの構造を改善します。

    Codex はまず、複雑になった箇所の構造を把握し、レビューしやすい小さな変更に分けてコードを整理できます。使われていない処理経路の削除、大きなモジュールの整理、重複した処理経路の統合、フレームワークの古い使い方の見直しを進めながら、変更ごとの検証を強化できます。

    既存のコードベースをそのまま改善するために、次のことを目指します。

    1. 使われていないコード、役目を終えたヘルパー、古いフラグ、不要になった互換性維持用のコードを削除します。
    2. ヘルパーを抽出する、コンポーネントを分割する、副作用を伴う処理を責務の明確な箇所に移すなどして、見通しの悪いモジュールを小さくします。
    3. 古い実装パターンを、リポジトリの現在の規約に沿った実装に置き換えます。たとえば、フレームワークの新しい基本機能、より明確な型、より単純な状態の流れ、標準ライブラリのユーティリティを使います。
    4. 外部から見た動作を維持しながら、次の変更にかかる手間を減らします。

    進め方

    1. 編集を始める前に、Codex に対象範囲を調べてもらいます。見通しの悪いモジュール、重複したロジック、使われていないコード、テスト、公開インターフェースが保証する動作、リポジトリの現状に合わなくなった古い実装パターンを洗い出してもらいます。
    2. 一度に取り組む課題は一つに絞ります。たとえば、使われていないコードを削除する、制御フローを簡素化する、古い実装パターンを更新する、大きなファイルを担当範囲が明確な小さな単位に分割する、といった課題から選びます。
    3. Codex がファイルを変更する前に、現在の動作、構造をどう改善するか、動作が変わっていないことを確認するために必要な最小限の検証を説明してもらいます。
    4. すべての変更を一つの差分にまとめず、変更のたびに差分をレビューし、その変更に必要な最小限の検証を実行します。
    5. 技術スタックの変更、依存関係の移行、アーキテクチャの変更は、今回のコード整理を完了するために必要な場合を除き、別のタスクとして扱います。

    作業を始める前に、プランモードでリファクタリングの計画を立てられます。

    ExecPlans の活用

    コードのモダナイゼーションに関するクックブックでは、ExecPlans を紹介しています。ExecPlans は、Codex が作業の全体像を把握し、目指す状態を明確にして、変更ごとの検証結果を記録するための文書です。 リファクタリングが複数のモジュールやセッションにまたがる場合に役立ちます。削除したもの、更新した実装パターン、維持する必要があったインターフェースの仕様、引き続き保留している項目を記録しておきます。

    繰り返す作業でのスキルの活用

    スキルは、複数のリポジトリ、サービス、チームで同じルールに従ってコードを整理するときに役立ちます。フレームワーク専用のスキルがあれば活用し、リスクの高い変更にはセキュリティや CI のスキルも組み合わせます。使われていないコードの削除、モジュールの切り出し、古い実装パターンの更新について実績のあるチェックリストがあれば、チーム用のスキルを作成します。 複数のコードベースで同じ手順で実装を更新することになったら、最初にうまくいった手順を Codex と一緒に再利用可能なスキルにまとめられます。

    Related use cases