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

    • マージ前に、移行のリスクが高い箇所、依存関係の変更、外部に公開される箇所を確認します。
    • 移行の各段階で CI が失敗した場合は、対応を最後まで先送りせず、その段階で原因を調べて修正します。
    • 移行が ASP.NET Core のアプリモデル、`Program.cs`、ミドルウェア、テスト、パフォーマンス、バージョンアップに関わる場合は、フレームワーク固有の指針に従います。
    Skill Why use it
    Security Best Practices マージ前に、移行のリスクが高い箇所、依存関係の変更、外部に公開される箇所を確認します。
    Gh Fix Ci 移行の各段階で CI が失敗した場合は、対応を最後まで先送りせず、その段階で原因を調べて修正します。
    Aspnet Core 移行が ASP.NET Core のアプリモデル、`Program.cs`、ミドルウェア、テスト、パフォーマンス、バージョンアップに関わる場合は、フレームワーク固有の指針に従います。

    Starter prompt

    このコードベースを [legacy stack or system] から [target stack or system] に移行してください。 要件: - まず、ルーティング、データモデル、認証・認可、設定、ビルドツール、テスト、デプロイ、外部システムとの取り決めについて、既存システムが前提としていることを洗い出してください。 - 新旧スタックの各要素の対応関係を整理し、移行先に直接対応するものがない箇所を明示してください。 - 一度に全面的に書き直すのではなく、互換レイヤーやチェックポイントを設けた段階的な移行計画を提案してください。 - ユーザーから見た動作の変更が移行要件に明記されている場合を除き、既存の動作を維持してください。 - 作業を段階に分け、各段階の完了後に lint、型チェック、変更箇所に絞ったテストを実行してください。 - 移行が完了するまで、ロールバックやフォールバックの選択肢をいつでも確認できるようにしてください。 - 検証に失敗した場合は、問題を修正してから次に進んでください。 - 最初に移行の影響範囲を整理し、どの段階にチェックポイントを設けるか提案してください。
    AstraMedium
    このコードベースを [legacy stack or system] から [target stack or system] に移行してください。 要件: - まず、ルーティング、データモデル、認証・認可、設定、ビルドツール、テスト、デプロイ、外部システムとの取り決めについて、既存システムが前提としていることを洗い出してください。 - 新旧スタックの各要素の対応関係を整理し、移行先に直接対応するものがない箇所を明示してください。 - 一度に全面的に書き直すのではなく、互換レイヤーやチェックポイントを設けた段階的な移行計画を提案してください。 - ユーザーから見た動作の変更が移行要件に明記されている場合を除き、既存の動作を維持してください。 - 作業を段階に分け、各段階の完了後に lint、型チェック、変更箇所に絞ったテストを実行してください。 - 移行が完了するまで、ロールバックやフォールバックの選択肢をいつでも確認できるようにしてください。 - 検証に失敗した場合は、問題を修正してから次に進んでください。 - 最初に移行の影響範囲を整理し、どの段階にチェックポイントを設けるか提案してください。
    AstraMedium

    概要

    ある技術スタックから別のスタックへ移行するときは、Codex を使って移行対象を整理し、計画に沿って作業を進められます。対象には、ルーティング、データモデル、設定、認証・認可、バックグラウンドジョブ、ビルドツール、デプロイ、テストに加え、言語やフレームワーク固有の規約も含まれます。

    Codex は既存システムの構成を洗い出し、移行元と移行先の概念を対応付けられます。システム全体を一度に書き換えず、段階ごとに変更を取り込めます。この進め方は、レガシーフレームワークからの移行や、新しいランタイムへの移植、製品の稼働を維持しながら技術スタックを少しずつ置き換える場合に役立ちます。

    移行の進め方

    1. まず、移行の影響が及ぶ範囲を洗い出します。既存のパッケージ、フレームワークの規約、ルーティング、データアクセス、認証・認可、設定、ビルドツール、テスト、デプロイの前提条件に加え、移行後も維持すべき外部システムとの取り決めを確認します。
    2. 移行元の概念を移行先のスタックの概念に対応付け、直接対応するものがない場合は明示するよう Codex に依頼します。
    3. 段階的な移行方法を選びます。互換レイヤーを設ける方法、モジュール単位で移植する方法、抽象化を介して実装を切り替える方法、ストラングラーパターンでシステムの境界を一つずつ選んで置き換える方法があります。
    4. 移行に伴って利用者から見える動作を変えざるを得ない場合を除き、既存の動作を維持します。例外となる変更は明示します。
    5. 各マイルストーンに達したら、移行前と同等の動作を確認するのに必要な最小限の検証を行います。対象に応じて、リント、型チェック、対象を絞ったテスト、契約テスト、スモークテスト、旧実装と新実装を並べて行う比較から選びます。
    6. 書き換えがすべて終わるまで待たず、各段階の区切りで差分と移行に伴う残りのリスクを確認します。

    ExecPlan の活用

    コードのモダナイゼーションに関するクックブックでは、ExecPlan という計画書を紹介しています。Codex はこの計画書を使ってコード整理の全体像を把握し、目指す状態を明示し、作業の区切りごとに検証結果を記録できます。 複雑な移行を Codex に任せるときは、システムの各部分について ExecPlan を作成するよう依頼します。こうすれば、技術スタックの選択を含め、すべての判断を記録して後から確認できます。

    ゴールの併用

    移行作業のうち完了までに時間がかかる部分には、ゴールを設定して Codex に作業の指針を示します。ゴールには、完了時に目指す状態、移行前と同等の動作を確認する方法、ロールバック時に求める対応、作業を停止する条件を明記します。

    Related use cases