芋出し画像

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を日々の開発に取り入れおみおください

最埌に、゚ム・゜フトは䞀緒に働くメンバヌを募集しおいたす
もしこの蚘事を芋お、゚ム・゜フトに少しでも興味を持っおいただけたしたら、以䞋の採甚サむトをご芧ください

新卒向けの゚ントリヌや、䌚瀟説明䌚などの情報はマむナビサむトをご芧ください

䞭途採甚情報はこちらをご芧ください