レビューを行う
GitHub Copilotにソースコードやテストコードのレビューをサポートしてもらい、レビュー効率を高める方法を記載します。
ソースコードのレビュー
作成されたソースコードをレビューします。
定型的な観点でのソースコードレビュー
実装する処理によらず、プロジェクト内でのコーディング標準やセキュリティなど遵守して欲しいルールがあるでしょう。
このような観点でのレビューを行う方法を記載します。
Ask Modeを使います。
通常、一般的なコード品質やパフォーマンス、セキュリティなどの観点は静的解析に近い位置づけで実施されるべきものです。
これらは静的解析ツールでは確認することが難しく、人による確認となりがちです。そして、その精度は実施する人の能力や感性に依存していると言わざるをえません。
しかし、本質的にレビューしたいのは機能的な観点です。
このようなレビューは、AIに実施させるのがよいでしょう。
観点別にレビューを実施するで紹介したように、レビューしたいソースコードを開き、レビュー観点別に用意したプロンプトをPromptisで一括実行します。 たとえば、「セキュリティ」、「パフォーマンス」、「可読性」といった観点ごとにプロンプトを用意し、一括でレビューを実行することで、網羅的かつ効率的なレビューが可能になります。
機能的な観点でのソースコードレビュー
定型的なレビューを行った後は、実装しなければならない機能的な内容を網羅しているか、誤っていないかを確認する必要があります。
Ask Modeを使います。
人がレビューすることも重要ですが、AIにレビューさせることで人によるレビューでの見落とし防止や多角的な視点での確認が期待できます。 特にAIが生成したコードをレビューさせる場合は、AI自身によるセルフチェックとしても有効です。
以下のようなプロンプトファイルを用意しておき、Chatウィンドウで呼び出します。
---
mode: "ask"
description: "ソースコードが設計書に定義された仕様を満たしているかレビューしてください"
---
# 前提
このプロンプトファイルには入力変数が含まれます。
プロンプトファイルを呼び出しに、入力変数のいずれかが未指定の場合はプロンプトの実行を中止し、ユーザーに入力変数の指定を指示してください。
# 指示
設計書 ${input:doc} の内容を確認して、現在開いているソースコードが必要な処理を実装しているかレビューしてください。
指摘は箇条書きで記載してください。
ここで、プロンプトファイルおよびプロンプトに指定すべき変数の値を以下と仮定します。
- プロンプトファイル:
.github/prompts/review-service.prompt.md - 設計書(
${input:doc}):#file:ユーザー登録機能.md
この時、Chatウィンドウでは以下のように指示します。
/review-service doc=#file:ユーザー登録機能.md
AIからのフィードバックを参考に、ソースコードを修正・改善します。
ただし、最終的な成果物責任は人にあることを忘れないようにしましょう。AIはあくまでサポート役です。