Amazon Q Developer ワークショップをTypeScriptで試してみた
今回は、Amazon Q Developerの機能を体系的に学べる公式ワークショップ「Amazon Q Developer ワークショップ - Q-Words アプリ構築」をTypeScriptで試してみたので、内容や注意点を紹介します。
このワークショップでは、単語当てゲーム「Q Words」のアプリケーションを題材に、実際のソフトウェア開発の流れに沿って、Amazon Q Developerの活用方法を学べます。
事前準備
ワークショップを進める前に事前準備として、セットアップと設定の内容を実施します。
概要:
- ワークショップに用いるコードのzipファイルをダウンロード
- 注意: Java以外の言語で進める場合は、オプションの追加言語から「workshop-all.zip」をダウンロードする必要があります
- VS Codeに拡張機能Amazon Qをインストール&ログイン
- Amazon Q Developer CLIのインストール&ログイン
全体の注意点
ワークショップを進める際には、以下の点にご注意ください。
Java以外の言語を利用する場合
- ワークショップを通してJavaを前提に記載されている箇所が多くあります
- Java以外の言語を用いる場合、ワークショップの手順を適宜読みかえる必要があります
プロンプトの言語について
- いくつかのプロンプトには日本語に置き換えられていたり、併記されていますが、英語のみで記載されていることがあります
- Amazon Qに日本語で回答してほしい場合は、その旨をルールで指示しておくと便利です
日本語出力ルールの例
# 日本語出力ルール
常に日本語で応答する必要があります
1. すべての回答は日本語で書く
2. コードコメントも日本語で記述する
3. 変数名や関数名の説明も日本語で行う
例外:
- コード自体(変数名、関数名、キーワード)は英語のまま
- URLやファイルパスは変更しない
- 公式な技術仕様や固有名詞は英語のまま使用可能
/dev, /review, /testコマンドについて
ワークショップの手順内で、/dev, /review, /testコマンドを用いる記載がありますが、VS CodeのAmazon Q拡張機能のバージョン1.95.0以降において該当コマンドは使えません。代わりに、自然言語による指示で、同様のことができます。
例:
- /dev -> xxを実装してください。要件など...
- /review -> xxをレビューしてください
- /test -> xxのテストコードを実装してください
各モジュールの紹介
コードの理解と要約
1.- タスク1: Amazon Qについて学ぶ (10〜15分)
- コンテキストやコマンド、ルールを含む基本的な使い方を学習
- タスク2: アプリケーションについて学ぶ (10〜15分)
- 特定ファイルや選択したコード、ワークスペース全体のコードを理解する方法を習得
- タスク3: ドキュメントを作成する (10〜15分)
- 注意: エージェントモードを無効にしている場合、チャット欄の左下からエージェントモードを有効にする必要があります
コードデバッグ、テスト、最適化
2.- タスク1: Q Words をビルド、実行してプレイする (5〜15分)
- 注意: ローカルのVS Codeで実行時は環境変数
WORKSHOP_MODE=false
に設定または削除が必要です。- TypeScript版においては、
npm run start:standalone
を利用して起動することでWORKSHOP_MODE=false
に設定されます。npm run start
の場合だと、WORKSHOP_MODE=true
になってしまいます。 WORKSHOP_MODE=true
の場合、APIリクエスト時にベースパスとしてproxy/が付与されるため、ローカルだとエラーになります。(proxy/の付与はワークショップ環境を想定している処理のようです)
- TypeScript版においては、
- 注意: TypeScript版においては、記載されてる「animalしか出ない」バグ以外にも「一度間違えた後に継続できない」などが存在しています。タスク2で、記載のバグと合わせて修正してみてもよいかもしれません。
- 注意: ローカルのVS Codeで実行時は環境変数
- タスク2: Amazon Q を使用してバグを特定し修正する (5~10分)
- タスク3: Amazon Q Developer を使用したユニットテストの作成 (5〜10分)
- タスク4: Amazon Q Developer を使用してコードをレビューする (5〜10分)
自然言語から新機能へ
3.-
タスク1: Amazon Qに機能を説明する (5〜15分)
- 自然言語での機能説明から実装までの流れを体験
-
タスク2: Amazon Q Developer のための効果的なプロンプトの作成 (5〜10分)
- 機能実装時により良い結果を得るためのプロンプト設計手法を学習
-
タスク3: プログラミング言語間の移行 (20分〜60分以上)
- 既存コードの別言語への変換プロセスを体験(Rust移行)
- ⏱️ 時間:
- 手順に従ってすすめるのみであれば20分程度
- 作成されたドキュメントを読み、コードを実行するなど、理解を深めながら進める場合は1時間以上
アプリケーションのモダナイズとトランスフォーメーション
4.- タスク1: Amazon Q Agentic Chatを使用したコード変換 (10〜30分以上)
- アプリケーションの一部をマイクロサービスとして切り出す
- Python、AWS Lambda、API Gateway、AWS SAMを使用した実装
- ⏱️ 時間:
- 手順に従ってすすめるのみであれば10分程度
- 作成されたドキュメントを読み、コードを実行するなど、理解を深めながら進める場合は30分以上
ソフトウェア開発を加速するための生成AI
5.- Amazon Q DeveloperのCLI、IDE、コンソールでの使い分けや効果的なプロンプトの作成方法などベストプラクティスなどを説明
リソースのクリーンアップ
6.- ワークショップでAWSリソースを作成した場合は該当リソースを削除
- アプリケーションのモダナイズとトランスフォーメーションでAWSにデプロイした場合など
まとめ:次のステップとフィードバック
7.- Amazon Q Developerをさらに試す場合のQ Wordsゲームの改善アイデア
- 継続学習のための参考資料
活用方法
ワークショップの内容を効果的に活用するため、目的別の学習パスを提案します。
生成AIを使って開発を効率化したい
こんな方にオススメ:
- 生成AIを使って開発を効率化したい
- Amazon Q Developerの使い方を知りたい
- AIコーディングアシスタントを触ってみたい、使い方を知りたい
推奨学習パス:
以下のモジュール・タスクを実際にやりながら、基本的な使い方や概念を体験してください。
- コードの理解と要約(全タスク)
- コードデバッグ、テスト、最適化(全タスク)
- 自然言語から新機能へ
- タスク1:Amazon Qに機能を説明する
- タスク2: Amazon Q Developer のための効果的なプロンプトの作成
- ※ タスク3: プログラミング言語間の移行は実施しない
- 少し趣が異なるため、除外していますが、言語の移行関係なく、大規模な変更時において、生成AIと壁打ちしながら進めていく方法としては参考になるかと思います。必要に応じて参照してください。
次のステップ:
- まとめ:次のステップとフィードバックを参考に、Amazon Q Developerをさらに試してみる
- Amazon Q Developerを実際の業務で使ってみる
既存コードを移行したい
こんな方にオススメ:
- 既存コードの言語を変換したい
- 特定の機能のみをマイクロサービスとして抽出したい
- 既存コードの大規模なリファクタリングをしたい
前提条件:
Amazon Q Developerの基本的な使い方を理解している
推奨学習パス:
以下のモジュール・タスクを実際にやりながら、既存コードの移行における生成AIの活用例を体験します。
次のステップ:
- ワークショップの内容を参考に、自身の課題を元にAmazon Q Developerと壁打ちしながら計画を立ててみる
- 実際のプロジェクトで段階的に移行作業を進める