Gemini Code Assist コードのカスタマイズを使用する

このドキュメントでは、Gemini Code Assist のコード カスタマイズの使用方法と、いくつかのベスト プラクティスについて説明します。この機能を使用すると、組織の内部ライブラリ、非公開 API、コーディング スタイルに基づくコードの推奨事項を受け取ることができます。

始める前に

  1. Enterprise サブスクリプションGemini Code Assist を設定する
  2. Enterprise サブスクリプションGemini Code Assist のコード カスタマイズを設定する

コード カスタマイズを使用する方法

次の表に、Gemini Code Assist のコード カスタマイズを使用する方法を示します。

フォーム トリガー方法 注および資料

自然言語チャット

IDE の Gemini Code Assist チャットで自然言語プロンプトを入力します。

次の点を考慮してください。

  • チャットの履歴は利用できません。複数ステップのクエリは避けます。
  • 特定のソースへのリンクなど、ソースの詳細を尋ねることができます。
  • チャットでメッセージを送信するときにコードをハイライト表示または選択すると、Gemini Code Assist はそのコードを使用してコードのカスタマイズとチャットの品質を向上させます。

詳細については、Gemini Code Assist でチャットするをご覧ください。

コードを生成する IDE のクイック選択バーで、コードを選択しているかどうかにかかわらず、Command+Enter(macOS の場合)または Ctrl+Enter を押します。 詳細については、プロンプトを使用してコードを生成するをご覧ください。
コードを変換する IDE のクイック選択バーで、コードを選択しているかどうかにかかわらず、/fix を入力します。 詳細については、プロンプトを使用してコードを生成するをご覧ください。
予測入力 コードのカスタマイズは自動的にトリガーされ、入力内容に基づいて候補が表示されます。

次の点を考慮してください。

  • コード補完では、候補を提案するために一定レベルの信頼度が必要です。関連するスニペットが取得されるように、十分な量のコードが利用可能であることを確認します。
  • コード補完は、関数の特定の要素を使用するのに必要なライブラリがインストールされているかどうかを確認します。

詳細については、コード補完を取得するをご覧ください。

ユースケースとプロンプトの例

次の表に、特定のユースケースでコードのカスタマイズを使用する際のガイダンスと例を示します。

ユースケース 試してみる価値のあるもの
新しいコードの記述

IDE または Gemini Code Assist チャットでコードを生成するには、次の操作を行います。

  • コードベースですでに言及されている用語を使用するコードを生成します。
  • 関数署名や TODO コメントを含むコードなど、コードを貼り付け、Gemini Code Assist に TODO コメントの入力または置換を指示します。コンテキストから説明を添えてコメントを追加します。

Gemini Code Assist チャットで次のプロンプトを使用してコードを生成してみてください。

  • DATABASE への接続が作成されるメイン関数を記述します。ヘルスチェックを含めます。」
  • FUNCTION_OR_CLASSEXPLAIN_STRUCTURE 構造で記述します。」

コードを生成したら、フォローアップ プロンプトを使用してコードを改善してみてください。

  • /fix コマンドを使用して、生成されたコードを調整してみてください(構文エラーなど)。
  • 「不足しているインポートを追加します。」
  • 「チャットで生成されたコードで /fix を試してください。」
コードのクリーンアップ、簡素化、リファクタリング

Gemini Code Assist チャットで次のプロンプトを試してみてください。

  • 「このファイルの IMPORTS_VARIABLES_OR_NOTE_EXPORTED_FUNCTIONS を統合できますか?」
  • FUNCTION_NAME 関数を簡素化するにはどうすればよいですか?」
  • FUNCTION_NAME_1FUNCTION_NAME_2 を 1 つの関数に統合できますか?」
  • FUNCTION_NAME で一部の変数をインライン化できますか?」
  • 「関数 FUNCTION_NAME の変数名を簡素化できますか?」
読みやすさ

Gemini Code Assist チャットで次のプロンプトを試してみてください。

  • 「可能であれば、関数 FUNCTION_NAME をより少��いコード行で記述します。」
  • 「関数 FUNCTION_NAME にコメントを追加します。」
  • 「関数 FUNCTION_NAME の不要な空白を削除します。」
  • 「関数 FUNCTION_NAME を他のコードと同様の形式にします。」
コードレビュー

Gemini Code Assist チャットで次のプロンプトを試してみてください。

  • 「コードを分割して、Google のコードベースを使用して各部分を説明してください。」
  • 「より短く、わかりやすい変数やキーワードはありますか?」
  • 「このコードの REPOSITORY_NAME_PACKAGE_MODULE コンテキストから有用なコードを教えてください」
  • FUNCTION_NAME 関数についてどう思いますか?」
デバッグ

Gemini Code Assist チャットで次のプロンプトを試してみてください。

  • 「X の実行や Y の追加を試すと、エラーが発生します。なぜですか?」
  • 「関数 FUNCTION_NAME でエラーを見つけられますか?」
  • 「このエラー メッセージが表示された場合、関数 FUNCTION_NAME を修正するにはどうすればよいですか?」
学習とオンボーディング

Gemini Code Assist チャットで次のプロンプトを試してみてください。

  • 「このコードを分割して、Google のコードベースを使用して各部分を説明してください。」
  • 「関数 FUNCTION_NAME を呼び出す方法を教えてください。」
  • ENVIRONMENT_NAME 環境でメイン関数を実行する方法を教えてください。」
  • 「このコードのパフォーマンスを向上させるために、どのような技術的な改善を加えることができますか?」
  • FUNCTION_OR_CLASS_NAME を実装して、より良い結果を実現し、その特定の要素を追加する方法を教えてください。たとえば、関数 foo の実装方法を教えてください。foo は関数の名前です。」
移行

Gemini Code Assist チャットで次のプロンプトを試してみてください。

  • FILE_NAMELANGUAGE_1 から LANGUAGE_2 に移行する戦略を教えてください。たとえば、Go から Python への移行です。」
  • 「リポジトリ REPOSITORY_NAME に関数 FUNCTION_NAME があります。使用できる言語 LANGUAGE_NAME で同等の関数を見つけてください。」

プロンプトを使用して、次のチャットベースの変換ワークフローまたはコード生成の変換ワークフローを試します。

  1. LANGUAGE_1 ですでに記述されている FILENAME_COMPONENT コードをリファクタリングして LANGUAGE_2 に移行します。」たとえば、Go から Python に移行します。
  2. コードの一部を移行したら、次の操作を試します。
    • 小さなチャンクを選択し、/fix を使用して目的の状態にします。
    • 以下のプロンプトを試します。
      • 「改善できる点はありますか?」
      • 「考えられる課題を教えてください。」
      • 「移行が正しい場合、このコードをどのようにテストしますか?」
ドキュメントの生成

Gemini Code Assist チャットで次のプロンプトを試してみてください。

  • 「パッケージまたはフォルダ X 内のコードを要約して、最も重要な 5 つのメソッドのドキュメントを提供します。」
  • FUNCTION_OR_CLASS_NAME のドキュメントを生成します。」
  • 「重要な情報を保持しながら、ドキュメントを短縮します。」
単体テストの生成

Gemini Code Assist チャットで次のプロンプトを試してみてください。

  • FILENAME の単体テストを生成します。」
  • FUNCTION_NAME 関数に最も関連性の高いテストケースを追加します。」
  • 「あまり価値がないと思われるテストケースを削除します。」

ベスト プラクティス

  • 関連する変数名、関数名、またはコード スニペットを使用する。これにより、コードのカスタマイズが、最も関連性の高いコードサンプルに導かれます。
  • スケーリングするインデックス リポジトリを使用して、非推奨機能の追加を回避する。コードのカスタマイズは、コードベース全体でコードスタイル、パターン、コード セマンティクス、知識、実装にスケーリングするのに役立ちます。スケーリングするリポジトリの悪い例としては、非推奨の機能、生成されたコード、レガシー実装などがあります。
  • コード取得のユースケースでは、コード補完ではなくコード生成機能を使用する。「FUNCTION_NAME の定義を使用して、まったく同じ関数を生成します」や「FUNCTION_NAME の正確な実装を生成します」などの文言を使用してプロンプトを表示します。
  • 取得するコードのファイルにインクルードまたはインポートを配置して、Gemini のコンテキスト認識を改善します。
  • プロンプトごとに 1 つのアクションのみを実行する。たとえば、コードを取得して新しい関数に実装する場合は、2 つのプロンプトでこれらの手順を実行します。
  • コード以外の情報(コードの説明、移行計画、エラーの説明など)が必要なユースケースでは、チャット用のコード カスタマイズを使用します。この場合、コンテキスト内のコードベースで Gemini と会話できます。
  • AI モデルの生成は非決定的であるので注意してください。レスポンスに満足できない場合は、同じプロンプトを再度実行すると、より良い結果が得られる可能性があります。
  • 単体テストの生成は、通常、ファイルをローカルで開き、チャットから、このファイルまたは特定の関数に対する単体テストの生成をリクエストするとうまく機能します。