見出し画像

AIを利用したソースレビューで品質向上

はじめに

こんにちは、ICT第2システム部の仁科です。
開発業務の中で「ソースレビュー」を行うとき「Javadocの書き漏れはないかな…」「メソッドが長すぎないかな…」など、コーディング規約に則って開発ができているか、不安を感じたことはありませんか?

レビューをする側は、本来、本質的なロジックに問題がないかの確認に集中したいものです。しかし、コードの品質・可読性・保守性を高めるため、コーディング規約に沿っているか…といった確認は必要不可欠であり、どうしても時間を取られてしまいます。

そこで、今回はGoogleのAI「Gemini」のカスタム機能であるGemを活用して「レビュー前の『セルフソースレビュー』をAIで実施する方法」をご紹介します。


そもそも「Gem(ジェム)」とは?

Gemとは、一言でいうと「特定の目的に合わせてカスタマイズした専用AIアシスタントを作れる機能」のことです。

一度Gemを作成しておくことで、特定の業務に特化した「専属のデジタルアシスタント」をいつでも呼び出せるのです。

なぜ「Gem」を使うのか?

では、なぜ通常のGeminiではなく、わざわざ「Gem」を作ってレビューを行うのでしょうか?その理由は、毎回長い前提条件(プロンプト)を入力する手間を無くせるからです。

通常のGeminiにソースレビューを依頼する場合は、毎回「あなたはシニアエンジニアです」「Javaのコードをレビューしてください」といった前提条件を説明する必要があります。「成果物のフォーマットはこれで…」「この規約に従って…」と毎回指示をするのは、意外と手間がかかり非効率ですよね。

しかし、Gem機能を使えばあらかじめ特定の役割(ロール)、知識、守ってほしいルール(レビュー基準など)をAIに記憶させておくことができます。
Gemにあらかじめ記憶させておくことで、あとはレビューしてほしいソースコードを貼り付けるだけで毎回同じ基準でレビューを行うことが可能になります

実際に作成する「レビュー専属Gem」の設定

今回は、Javaプロジェクトの品質担保を想定して、以下のような「カスタム指示(プロンプト)」をGemに覚え込ませます 。

Gemのカスタム指示(設定内容)

# Role
あなたはシニアJavaエンジニアとして、提供されたソースコードのレビューを行います。
以下の「レビュー基準」を厳守し、コードの品質、保守性、およびプロジェクト規約への適合性を確認してください。

# レビュー基準
1. Javadocの網羅性と正確性
 ・原則として、すべてのメソッドおよびクラスにJavadocがあるか確認。
 ・@param、@return、@throws などの必須タグが簡潔に記載されているか。
2. コードの冗長性と最適化
 ・不必要なインスタンス化や、不要な変数宣言、マジックナンバーの使用がないか。
3. メソッドの肥大化抑制
 ・1つのメソッドが50行を著しく超えていないか。超える場合は「メソッド抽出(Extract Method)」を提案。

# 回答フォーマット
指摘事項がある場合は、以下の形式で出力してください。

■ [ファイル名]
【指摘箇所】: 該当の行番号やメソッド名
【内容】: 問題点
【修正案】: 具体的なコード例
【理由】: 修正のメリット
※指摘がない場合は「規約に準拠しています」と回答。

レビューが完了したら、最後に『レビュー結果をファイルとして出力しますか?』とユーザーに問いかけ、要望があれば回答フォーマットで出力した内容と同じものをhtmlファイルとして生成してください。

このように設定しておくことでAIの回答のブレをなくし、常にプロジェクト規約に沿った均一なクオリティのフィードバックを受け取ることができます。

Gemの作成画面

Gemのレビュー結果をhtmlで出力した場合のイメージ

Gemを使ったレビューのメリット

Gemを使ったレビューを行うことで、以下のようなメリットが生まれます。

1.レビューを依頼する「心理的ハードル」の低下

人間相手だと「こんな初歩的なミスを見られたら恥ずかしいな…」と思ってしまうような記述ミスやうっかり消し忘れた冗長なロジックを、レビュー依頼前にAIが検出してくれます。綺麗になったコードで本番レビューに臨めるため、精神的に非常に楽になります。

2.本番レビューの質とスピード向上

Javadocの漏れやコードの体裁といった「手戻り」を事前にゼロにできるため、本番レビューでは「システムの仕様を満たしているか」など、本当に確認すべきことに集中できます。結果としてプロジェクト全体の開発スピードが上がります。

3.修正案から学ぶ、自身のスキルアップ

Gemは単純に修正が必要な場所を指摘してくれるだけではなく「具体的な修正案」と「なぜそうすべきか(理由)」をセットで教えてくれます。AIのアドバイスを読みながら修正していくことで、自然と自分自身のコーディングスキルの向上にもつながります

まとめ

今回は、AIを活用した業務効率化の一例としてGeminiのGemを使ったソースレビューの手法をご紹介しました。

もちろん、AIによるレビューは100%の精度を保証するものではありません。人間の代わりにすべてを委ねるのではなく、あくまで「最終的な判断は人間が行う」という前提が大切です。

しかし、特性を理解して適切に運用すればコード品質の向上やレビュー業務の大幅な効率化につながることは間違いありません。「まだGemを作ったことがない」という方は、ぜひお使いのプロジェクトのルールを読み込ませて、自分だけのカスタムGemを日々の開発に取り入れてみてください!

最後に、エム・ソフトは一緒に働くメンバーを募集しています!
もしこの記事を見て、エム・ソフトに少しでも興味を持っていただけましたら、以下の採用サイトをご覧ください!

新卒向けのエントリーや、会社説明会などの情報はマイナビサイトをご覧ください!

中途採用情報はこちらをご覧ください!