まとめ¶
ワークショップ修了、おめでとうございます!¶
このワークショップでは、小規模な Python(FastAPI)HTTP サービスを C# の ASP.NET Core Minimal APIs による Web サービスへ移行する、現実に近いエンドツーエンドの移行シナリオを体験しました。GitHub Copilot を 3 つのモード(Ask・Agent・Plan)すべてにわたる AI ペアプログラマーとして活用しながら、規律あるインクリメンタルな移行・テスト駆動の検証・AI の責任ある活用(小さな差分・継続的なフィードバック・明示的な検証)に焦点を当てました。
ストーリーとゴール¶
「Zava」のエンジニアとして、温度・季節ルックアップ API を Python から C# へ移行し、パフォーマンス・型安全性・将来のスケーラビリティを改善する役割を担いました。元の Python サービスは静的な JSON データをバックエンドとして複数の HTTP エンドポイントを公開していました。目標は API 互換性を維持しながら C# で同等の動作を再現し、テストカバレッジと保守性を向上させることです。
GitHub Copilot の活用パターン¶
| モード | ワークショップでの役割 | 使用例 |
|---|---|---|
| Ask | 大量のコードを出力させずに、探索・説明・ブレインストーミングを行う | コードベースの概要把握、不足テストの特定 |
| Plan | タスクを整理し、複雑な作業を管理しやすいステップに分解する | エンドポイントの分析、実装ロードマップの作成、プロジェクト構造の提案 |
| Agent | プロジェクト雛形の生成・コマンド実行・段階的なエンドポイント移行などの複数ステップを自律的に実行する | C# プロジェクトの作成、各エンドポイント追加後のテスト実行 |
重要なプロンプトテクニックとして:リクエストを絞り込む(「ルートエンドポイントだけ追加して」)・部分的な生成を意識させる・モノリシックなファイルを一度に要求するのではなくイテレーティブに洗練させる、といった手法を実践しました。
達成した成果¶
| 分野 | 結果 |
|---|---|
| 機能的な同等性 | Python のすべてのエンドポイントを C# でレスポンスが一致する形で再現 |
| テストカバレッジ | Python テストが両実装を検証 + オプションで C# MSTest テストを追加して高速フィードバックを確保 |
| 信頼性 | C# の強い型付けシステムによるコンパイル時の型安全性と明確な型定義 |
| AI の活用 | 各モードにまたがる生産的な Copilot 活用パターンの実証 |
次のステップ¶
ボーナスコンテンツセクション をぜひ確認してください!このプロジェクトをさらに発展させるためのボーナスチャレンジを用意しています。
最後に¶
実践的で、テスト駆動で、AI を活用した移行パスを体験しました。Copilot を精査可能な小さな変更に絞り込み、継続的に検証することで、サービスの運用・パフォーマンス面を改善しながら確実な同等性を実現しました。これは、正確性・安全性・保守性を同時に高めなければならない現実のモダナイゼーション作業を模しています。
Happy shipping and keep iterating with purpose! 🚀