.NET Tools
Essential productivity kit for .NET and game developers
JetBrains AI Assistant でコードの変更を理解しよう
ソフトウェア開発者はコードベースを読み解くのに多くの時間を費やしています。 元の作成者との連絡がつかなかったり、ドキュメントが古くなったりしている状況では、頻繁に変更されるコードベースを読み解くのは特に大変に感じるかもしれません。 幸い、コードはうそをつきません。入力を解析して要約する LLM と AI Assistant の機能が向上しているため、過去の作業を理解するのに注力しながらコードベースの拡張または変更の計画を立てることができます。
この記事では JetBrains AI Assistant を使って Git リポジトリの過去のコミットを要約し、その要約から貢献者を絞り込み、貢献者のシンボル内での作業を詳細に理解する方法を説明します。 最後に、いくつかプロンプトの例を載せていますので、実際にお試しください。
開始する前に、JetBrains AI Assistant プラグインを有効にして JetBrains AI Assistant サービスの有効なサブスクリプションを取得している必要があります。
JetBrains AI Assistant でコミットを要約する
JetBrains IDE には既存のリポジトリ内のすべてのブランチとコミットを表示できる、ワールドクラスのソース管理クライアントが備わっています。 JetBrains のツールセットを使った経験のある方なら、Git ツールウィンドウと既存コードベースのナビゲーションに慣れていらっしゃるかと思います。 AI Assistant が有効になっている場合、複数のコミットをハイライトして「Explain Commits with AI Assistant(コミットを AI Assistant で説明)」オプションを選択できます。

すると、選択されたコミットをコンテキストとして新しい AI Assistant チャットが作成されます。 AI Assistant が JetBrains サービスに送信するのは Git のコミットとログ情報のみです。 ファイルそのものは送信しませんが、ローカルでは詳細なインサイトを得るために参照したファイルの内容を表示する場合があります。

スクリーンショットからわかるように、選択したコミット内の全てのコード変更の要約が得られます。 チャットの内容をさらに絞り込み、行った作業を除外できます。 ここでは既存のチャットに「Summarize all the work by everyone except Khalid Abuhakmeh(Khalid Abuhakmeh(当ブログの筆者)を除く全員の作業を要約する)」と入力しました。

プロンプトの名前をあなたの名前に合わせて変更し、既存のコードベースでテストしてみましょう。 ワークフローをさらに高速化するため、このプロンプトを先々のチャットで使用できるように保存することも可能です。
他にも「Group all summaries by contributors(すべての要約を貢献者ごとにグループ化)」というプロンプトを使って要約を貢献者ごとにグループ化する方法も役立ちます。

チャットの応答を読み進めていくと、気になるシンボルに気づくかもしれません。 これは特定のシンボルの説明をさらに絞り込むのに絶好の機会です。 ここでは HTMX.NET コードベースで作業しているため、「What work did Ricky do in HtmxHeadersTagHelperTests(Ricky が HtmxHeadersTagHelperTests で行った作業は何)」というプロンプトで HtmxHeadersTagHelperTests クラスに影響を与える変更をすべて表示したいと思います。

他にも以下のようなプロンプトを使って AI Assistant が生成する概要をさらに絞りこむことができます。
- JavaScript ファイル内でどのような作業が行われましたか?
- これらのコミット内で最も多く変更を行ったのは誰ですか?
- これらのコミットにはテストファイルがいくつ含まれていますか?
- これらのコミット内で同じファイルに 2 人の貢献者が作業しましたか?
- マージコミットを除き、いくつのコミットがありましたか?
- 選択されたコミットの履歴をコンマと引用符付きの値のみを使って CSV 形式で表示してほしい。
これらは気付きを与え、開発チーム内の他のユーザーと情報を共有する手段を提供する便利なプロンプトとなっています。 ただし、回答の正確性と完全性は常に再確認するようにしてください。
まとめ
JetBrains AI Assistant はあなたや他のユーザーが既存のコードベース内で行った作業に関する考えを発見、整理し、まとめるのに役立ちます。 これを理解しておくと、アイデアをより適切に処理し、チームメンバーに効果的に伝えることが可能となります。 効果的な対話によってチームの効率を向上させ、バグを発見して排除し、ソフトウェアを改善することができます。
この記事では、コードベース内ですでに存在する作業を発見するときに JetBrains AI Assistant で試せるアイデアをいくつかご紹介しました。 今が JetBrains AI Assistant を試す絶好のタイミングとなっており、新規ユーザーには 7 日間の体験版が用意されています。 既存ユーザーの方は、日々のワークフローで使用している他のプロンプトについてのアイデアをぜひお聞かせください。
オリジナル(英語)ブログ投稿記事の作者: