【re:Invent2024】Amazon Q Developerがすごい

記事タイトルとURLをコピーする

こんにちは、エンタープライズクラウド部クラウドコンサルティング課の山永です。

本記事では、Workshop形式のセッション「DOP308-R | Accelerating enterprise development with Amazon Q Developer [REPEAT]」を受講して得た学びと感想をお伝えします。

Amazon Q Developerとは?

簡単に言うと、アプリケーション構築をサポートしてくれるサービスです。

大きく分けて、AWSマネジメントコンソールで使用するパターンと、統合開発環境 (IDE) に組み込んで使用するパターンの2つがあります。

AWSマネージメントコンソールから利用するパターン

コンソールから使用する場合、AWSアーキテクチャ、AWSリソース、ベストプラクティス、ドキュメント、サポートなどについて質問できます。

統合開発環境(IDE)に組み込んで使用するパターン

Visual Studio Code等のIDEに組み込んで使用することが可能で、この場合、ソフトウェア開発の支援を行います。主な支援内容は以下の通りです。

  • コードに関する質問
  • インラインコード補完
  • 新しい機能のコード生成
  • コードをスキャンしてセキュリティの脆弱性を検出
  • 言語の最新化
  • コードデバッグ、テスト最適化

docs.aws.amazon.com

ワークショップ概要

本ワークショップでは、Amazon Q DeveloperをVisual Studio Codeに組み込んで使用し、Javaで作られたアプリケーションのコード理解、デバッグ、テスト、最適化などのタスクを体感しました。

具体的には、Q-Wordsアプリケーションという単語当てクイズのゲームアプリを通じて、以下の内容を学びました。

  1. コードの理解と要約
  2. コードのデバッグ、テスト、最適化
  3. 新機能の実装

1. コードの理解と要約

Amazon Qは、アプリケーションの構成ファイル、クラス、関数を理解するのに必要な情報を要約してくれます。

例えば以下のように質問すると、クラスの役割だけでなく他のクラスとの関係についても教えてくれるため、コード全体に対する理解を深めることができました。

質問する際は、ファイル名やクラス名を(`ClassName`)のように囲むと、Amazon Qがより適切に理解してくれるようです。

What does `GameController` class do?

2. コードのデバッグ、テスト、最適化

コードを理解して実際にアプリを動かしてみると、単語当てクイズなのに同じ単語しか出題されないというバグを発見しました。

Amazon Qにバグ修正を依頼すると画像のような形で修正済みコードを生成してくれます。

入力

応答

また、Amazon Qではクラスや関数レベルでのテストケースの作成や、コード全体をスキャンしてセキュリティ上のリスクを抽出することも可能です。

機能として以下のような問題が合った場合に課題を抽出してくれるようです。

  • Code issue name and severity – Listed at the top of the panel, the CWEs and name of the issue, in addition to the severity of the issue. For more information about severity, see Code issue severity in Amazon Q Developer code reviews.

  • Code issue description – Describes the problem with the line or lines of code that generated the code issue.

  • Common Weakness Enumeration (CWE) – One or more CWE types that apply to the detector that identified the code issue. Choose the CWE link to learn more about it.

  • Directory library – A link to the detector in the Amazon Q Detector Library that generated the code issue.

  • File path – The location of the file that contains the code that generated the code issue.

docs.aws.amazon.com

3. 新機能の実装

このステップでは、Amazon Qに新しい機能の実装に必要なコードを生成してもらいます。

ワークショップでは、「回答した単語の履歴」を表示する機能を実装しました。

docs.aws.amazon.com

感想

本ワークショップでは、実際の開発現場で役立つスキルを体験的に学ぶことができました。

これまでJavaでの開発経験はありませんでしたが、コードの要約機能により全体の構成やクラスの役割を理解する助けとなりました。

一方で、現時点では日本語に対応していない点が一番の課題かと感じ、今後のアップデートでの対応に期待しています。

普段業務で使わないようなサービスでも、実践的なワークショップを通じて学ぶことができるのは、re:Invent参加の醍醐味でもあると改めて実感しました。

興味を持たれた方は、ぜひ来年度のre:Invent参加を検討してみてはいかがでしょうか。