Amazon Q DeveloperはVScodeやCLIのイメージが強いですが、GitHub での Amazon Q Developer 統合 (プレビュー) も利用可能です。値段も現時点では無料ということで1か月ほど商用運用で使うリポジトリに入れて使ってみています。
値段も現時点では無料ということで1か月ほど商用運用で使うリポジトリに入れて使ってみています。
なので、今回は実際に使ってみての所感を書いていきます
導入方法
以下のDocsを参考にしてください。
弊社の場合はGithub Appは承認制になっているので、Github管理者とコミュニケーションをとってインストールをしました。大規模な開発組織だとあるあるだと思うので、注意です
検証範囲
今回は主にAmazon Q コードレビューエージェントを検証しました。
Amazon Q transform エージェント についてはちょうどいいJavaプロジェクトがなかったので割愛します
Amazon Q 開発エージェントについては以下の記事が参考になります
どんな感じのコードレビューになるか
前提条件
-
Github Copilotのレビューと併用しています
-
Github Copilot / Amazon Q Developerのどちらもデフォルトのままでカスタマイズをしていません
- copilot-instruction.mdや.amazonq/rulesは使用していません
レビュー動作
こちらの記事で紹介したAnsibleのカスタムモジュールを出したPRをレビューさせてみます
PRを作成すると以下のようなコメントが表示されます。
レビュー開始の旨と使い方の説明、そしてPRのSummaryが表示されます。
Summaryには修正すべき課題が中心的に記載されています。
一方でPositive Changesとして良い修正も指摘してくれています
コードへのコメントにおいては、重要なコメントには色アイコン使用しています
良い修正にもコメントをしています。(Good fix!と言ってくれると嬉しいですね)
また、PRのDescriptionを読み取って、そこに記載された内容に基づいた変更なのかを評価してくれたりもします
良い点
- Copilotよりも多くの指摘をしてくれる
- このPRではAmazon Q Developerが6件、Copilotが3件でした
- PRタイトルやDescriptionに基づいたコメントをしてくれる
- 脆弱性指摘の場合は、どの脆弱性に該当するかをリンクで教えてくれる
- 良い修正へのコメントをしてくれる
- 修正の指摘だけだと結構苦しいので、こういったものが1つあるだけでもモチベーションが変わる
- 人間とレビューしているみたいで楽しい
微妙な点
- コンテキストを読み取れていない指摘が多い
- これはamazonq/rulesで改善できそう
- コメントも多いので、既存のリポジトリに入れると、結構ノイズになる
- 脆弱性やセキュリティの指摘は的外れなことが多い
- (Copilotも同様だが)同様の修正で別PRを出すと別の指摘が出てくる
- これはAIレビューの共通の課題かなと思います
Github Copilotとの差分
Amazon Q Developerではフィードバック中心のサマリですが、Copilot側はあくまで変更をまとめが中心です
Copilotのコメントでは色アイコンを使用した視覚的なアプローチはありません
また、良い修正に対するコメントはなく、あくまで修正すべき内容だけにコメントをしています。これは好みが分かれると思いますが僕はAmazon Q Developerのアプローチが好きですね
また、コードの中身の指摘だけでなく、単語の修正も多かったです。
差分表示+UI上でそのままクリックして変更反映が可能です。これはGithub謹製ならではですね
1か月使っての所感
導入してからは、PRレビューにあたっては、まずはAmazon Q Developer・Copilotからのコメントに対応してもらうようにしています。
その結果、初歩的なミスや重大な問題についてはレビュー開始からすぐに気づくことができるので、手戻りが少なくなりました。
また、人間のレビューとは異なる視点でのコメントがあると、人間側も視点を広げてみれるようになるので、そこも間接的な効果があるかなと思います
(現状では余り活かせていないですが)脆弱性指摘などは、人間ではパット見は気づかないことなので、Q Developerの改善に伴って、今後よりありがたさが増していくのかなと思います。
まとめ
- Amazon Q Developerでは改善点を中心としたフィードバック中心のサマリ
- コードコメントでは指摘のレベルに応じて色アイコンを使用しており、視覚的にコメントの重要度を把握できる。
- 指摘は多めだが、指摘の精度は程々。取捨選択が必要
- Copilotと併用するとそれぞれで違った観点でコメントしてくれるので便利
- 今は無料なので入れ得です