GitHub Copilot の応用手法

完了

前のユニットでは、Copilot を設定する方法を示し、開発者がコードの記述をより速く開始する方法について説明しました。

このユニットでは、Copilot が既存のプロジェクトを支援し、より複雑なタスクを支援する方法について説明します。

GitHub Copilot を使用した高度なタスク

エンジニアは、既存のプロジェクトで作業するのが一般的です。 コードの修正や機能の実装を行う場合、ドキュメントやテストを作成したり、ターミナル コマンドを操作したりする必要があります。 GitHub Copilot を使用してこれを実現できるいくつかの方法を見てみましょう。

暗黙的なプロンプト

GitHub Copilot ガイダンスを取得するためのプロンプトでは、具体的に指定することもできますが、適切な回答を得るために事前に作成されたプロンプトを暗黙的に提供する機能を利用できます。

たとえば、Python プロジェクトで作業していて、バグがある次のコードのファイルを開いているとします。

with open("file.txt", "r") as file:
    # Read the file and print the content
    contents = file.read

コードを選択し、Windows で Ctrl + I キーを使用するか、Mac で Command+i キーを使用した後に、インライン チャットと /fix スラッシュ コマンドを使用してコードの修正の支援を GitHub Copilot に依頼できます。

/fixのみを入力した場合は、GitHub Copilot から次のような応答が返されることがあります。"コードを修正するには、file.read の後にかっこを追加して、read メソッドを呼び出し、メソッド名の入力ミスを修正します。"

スラッシュ コマンドは、インライン チャットとチャット インターフェイスの両方に使用できます。 /fixコマンドに加えて、Copilot チャットで使用できる最も便利なスラッシュ コマンドの一部を次に示します。

  • /doc: 指定したコードまたは選択したコードにコメントを追加します。
  • /explain: コードに関する説明を取得します。
  • /generate: 指定された質問に回答するコードを生成します。
  • /help: Copilot チャットの使用方法に関するヘルプを取得します。
  • /optimize: 選択したコードのランタイムを分析して改善します。
  • /tests: 選択したコードの単体テストを作成します。

スラッシュ コマンドを使用すると、GitHub Copilot との対話が簡単になり、長いプロンプトを記述せずに、より適切な応答を取得するのに役立ちます。

スラッシュ コマンドなどの機能とインライン チャットを組み合わせることで、ユーザーと作業中のコードにとって最適な方法を選択できます。

選択的コンテキスト

GitHub Copilot は、作業中のコンテキストに基づいて提案を提供するようにカスタマイズできます。 たとえば、ワークスペース全体またはターミナル出力に基づいて提案を提供するように GitHub Copilot に依頼できます。

GitHub Copilot では、多くのファイルを開く必要なく、プロジェクトに対して正確な提案を行うことができます。 Dockerfile を使用してプロジェクトをパッケージ化する必要がある場合を想像してください。 Dockerfile は、プロジェクトをパッケージ化するための具体的な手順が必要な特別なファイルです。 GitHub Copilot チャットを使用して、支援方法を尋ねることができます。たとえば、GitHub Copilot Chat を開き、次のコマンドを入力します。

I need to create a Dockerfile for this project, can you generate one that will help me package it?

プロジェクトの Dockerfile を作成する手順と、ファイルの手順で実行される内容に関するいくつかの説明を示す応答が返されます。

常に、提案が探しているものと厳密に一致しない場合は、プロンプトの文言を変更して、より具体的に指示できます。 たとえば、Dockerfile を作成するときに特定の手順を使用するように GitHub Copilot に依頼できます。

Help me create a Dockerfile to package this project but make sure you are using a Virtual Environment for Python.

また、Copilot では、作業している場所に基づいてコンテキスト固有の提案を提供することもできます。 たとえば、 @terminal エージェントを使用してエラーやコマンドに関するヘルプを取得し、Copilot がターミナル出力に基づいて提案を提供できるようにします。

例: @terminal 表示されているエラー メッセージを修正する方法

先に進めない場合や、必要な結果が得られない場合は、プロンプトを書き直すか、オートコンプリートするように Copilot のコードの記述を開始します。

既定では、GitHub Copilot はテキスト エディターで開いているファイルを追加のコンテキストとして使用します。