こんにちは!エンジニアのクラブチです。
re:Invent2024でAmazon Q Developerにもいろいろアップデートが入りましたね。
Amazon Q Developer は実はあまり利用したことが無く(日本語対応してないし)、特に関心のあるサービスではなかったのですが、re:Invent2024 の Keynote でアップデートを聞いてから「これは便利そうだぞ」と興味が出てきました。
今回、新しいアップデート内容について現地でセッション聴講して、自分でも簡単に触ってみたのでご紹介していこうと思います。
Amazon Q Developer とは?
Amazon Q Developerは、AWSが提供する開発者向けの生成AIアシスタントです。VScodeなどのIDEの拡張機能から利用することができます。
コードの補完や自動生成機能を使用することで、効率的に開発作業を行うことができます。
アップデート内容に関するセッション
Increasing productivity with Amazon Q Developer Agent
このセッションでは、今回のアップデートで追加された3つの機能を、既存の機能を含めてデモを交えながら実演解説してくれました。
/review
コードレビュー機能doc
ドキュメント作成機能/test
ユニットテスト機能
既存のコード生成機能と合わせて使えばコーディング作業やドキュメント作成が非常に楽になりそうです。
↓セッション動画(YouTube)リンク
Increasing productivity with Amazon Q Developer Agent
実際に触ってみた
セッション内容に沿って各機能を触ってみました。
/dev
コード生成機能
既存の機能ですが、この機能を使って簡単なじゃんけんゲームアプリを作ってみます。
翻訳アプリに頼って英文のプロンプトを用意します。
プロンプトの頭に/dev
を付けてAmazon Q にコード生成をお願いしてみましょう。
プロンプトを流すとコードの生成が始まりました。
合計で6つのファイルが生成されました。「このコードをプロジェクトに追加するか」、「もう一度再生成するか」と聞かれているので「Accept all changes」を押下して、全てのファイルをプロジェクトに追加します。
また、Code suggestionsの一覧からファイル毎に追加することも可能です。
よく見ると後で/doc
で作成しようと思っていたREADMEも、この時点で作成してくれていますね。
コードの補完や生成だけでなく、ディレクトリ構成ごとファイル作成してくれるのは凄いですね。
appファイルを実行すると、じゃんけんゲームで遊ぶことができました。
勝敗のスコア記録の機能も実装されていて、単純なプロンプトで作った割には良い感じな仕上がりです。
/review
コードレビュー機能
作成されたコードに新機能のコードレビュー機能を使ってみます。Chat欄に/review
と入力して実行します。
レビューが開始されると選択肢が表示されるので「Review workspace」を選択します。
レビューが完了するとウィンドウ左側に重要度別のリストが表示されました。
- デバッグ機能が有効になっている
- グローバル変数が使用されている
とレビューの結果が出ていますが、それぞれの修正要否については人間側で判断します。
今回はお試しなので修正の必要はないですが、レビューの詳細画面から「Generate Fix」を押下することで、改善案の提案もしてくれます。
/doc
ドキュメント作成機能
他の機能同様、/doc
とだけ入力して、対話形式で選択肢を選んでいくだけでREADMEを作成してくれます。
ファイルパスの指定はしていませんが、既存のREADME.mdを修正する形で変更が提案されました。賢いですね。
レジストリ構成、コード例、データフローの説明が追加されて、より内容が充実しました。
なかなかしっかりと書いてくれてるので、叩き台作成としてドキュメント作成にかかる労力をかなり削減してくれそうです。
/test
ユニットテスト機能
チャット欄に/test
とだけ入力して、ユニットテスト作成を試してみます。
テストを作成したいモジュールのウィンドウをアクティブにしておくと、勝手にファイルを指定してテストコードを生成してくれます。
※ 2024/12時点では Java もしくは Python のみ対応
app.py
で使われている関数に対してテストが生成されました。
View diff を押下することで、変更の確認と、プロジェクトへの追加の承認ができます。
test_app.pyのファイルが作成され、合計で28個のテスト項目が作成されました。
import の依存関係を修正したりなど、生成されたそのままでは使えませんでしたが、ユニットテストの叩き台作成として便利そうですね。
まとめ
実際に触ってみた所感ですが、簡単なプロンプトだけでもそれなりの形で出力されるので、プロンプトを工夫すればもっと精度の高いコードやドキュメントが作成できるのではと思いました。
今回はお試しでじゃんけんアプリを作らせて各機能を触ってみましたが、CloudFormaitonやCDKでのコーディングでも試してみたいですね。
機能も追加されて便利になってきたので、日本語対応が待ち遠しい…!