Codex use case
コードの移行
各段階で検証しながら、レガシースタックを移行します。
Codex を使って、レガシーシステムの各要素が新しいスタックのどの要素に対応するかを整理します。移行は段階的に進め、次の段階に移る前に、新旧システムの動作が一致することを確認します。
Best for
- レガシースタックから新しい技術スタックへの移行に伴い、フレームワーク、ランタイム、ビルドシステム、またはプラットフォーム固有の規約を変更する必要があるケース
- 互換レイヤーを使って段階的に移行し、各チェックポイントで明示的に検証する必要があるチーム
Contents
コードの移行
各段階で検証しながら、レガシースタックを移行します。
Codex を使って、レガシーシステムの各要素が新しいスタックのどの要素に対応するかを整理します。移行は段階的に進め、次の段階に移る前に、新旧システムの動作が一致することを確認します。
Codex を使って、レガシーシステムの各要素が新しいスタックのどの要素に対応するかを整理します。移行は段階的に進め、次の段階に移る前に、新旧システムの動作が一致することを確認します。
Related links
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
概要
ある技術スタックから別のスタックへ移行するときは、Codex を使って移行対象を整理し、計画に沿って作業を進められます。対象には、ルーティング、データモデル、設定、認証・認可、バックグラウンドジョブ、ビルドツール、デプロイ、テストに加え、言語やフレームワーク固有の規約も含まれます。
Codex は既存システムの構成を洗い出し、移行元と移行先の概念を対応付けられます。システム全体を一度に書き換えず、段階ごとに変更を取り込めます。この進め方は、レガシーフレームワークからの移行や、新しいランタイムへの移植、製品の稼働を維持しながら技術スタックを少しずつ置き換える場合に役立ちます。
移行の進め方
- まず、移行の影響が及ぶ範囲を洗い出します。既存のパッケージ、フレームワークの規約、ルーティング、データアクセス、認証・認可、設定、ビルドツール、テスト、デプロイの前提条件に加え、移行後も維持すべき外部システムとの取り決めを確認します。
- 移行元の概念を移行先のスタックの概念に対応付け、直接対応するものがない場合は明示するよう Codex に依頼します。
- 段階的な移行方法を選びます。互換レイヤーを設ける方法、モジュール単位で移植する方法、抽象化を介して実装を切り替える方法、ストラングラーパターンでシステムの境界を一つずつ選んで置き換える方法があります。
- 移行に伴って利用者から見える動作を変えざるを得ない場合を除き、既存の動作を維持します。例外となる変更は明示します。
- 各マイルストーンに達したら、移行前と同等の動作を確認するのに必要な最小限の検証を行います。対象に応じて、リント、型チェック、対象を絞ったテスト、契約テスト、スモークテスト、旧実装と新実装を並べて行う比較から選びます。
- 書き換えがすべて終わるまで待たず、各段階の区切りで差分と移行に伴う残りのリスクを確認します。
ExecPlan の活用
コードのモダナイゼーションに関するクックブックでは、ExecPlan という計画書を紹介しています。Codex はこの計画書を使ってコード整理の全体像を把握し、目指す状態を明示し、作業の区切りごとに検証結果を記録できます。 複雑な移行を Codex に任せるときは、システムの各部分について ExecPlan を作成するよう依頼します。こうすれば、技術スタックの選択を含め、すべての判断を記録して後から確認できます。
ゴールの併用
移行作業のうち完了までに時間がかかる部分には、ゴールを設定して Codex に作業の指針を示します。ゴールには、完了時に目指す状態、移行前と同等の動作を確認する方法、ロールバック時に求める対応、作業を停止する条件を明記します。