GitHub Copilot 活用方法
効率的な使い方の基本
1.コード補完機能
GitHub Copilotは、コードを書き始めるとコメントや関数名をもとに自動的にコードを生成します。
この機能を使うには?
- コメントで実装したい処理を記述
- 実装したい処理の関数名を記述
- 提案されたコードが薄い文字で表示されるので、
TABキーを押して確定 - 拒否する場合は
ESCキー
コード補完を活用するコツ
- 逐次的な補完を利用する
長いコードを一度に補完するのではなく、段階的に進めることで誤りを防げます。
- 補完候補を切り替えて試す
Copilotは複数の提案を生成します。Ctrl + ](またはエディタの対応するショートカット)を使って次の提案を確認し、目的に最適なものを選びましょう。
自動補完機能の使い方ヒント
手入力である程度法則性を持たせると、望ましい出力が得られやすくなります。
例: 変数を生成→変数をプリント→変数を生成→変数をプリント
2.チャット機能
拡張機能 GitHub Copilot Chat を使うと、エディタ上で自然言語による対話が可能です。
この機能を使うには?
- VS CodeではCopilotボタンを押すことで利用可能です。
- タグをつけて質問することも可能
例:@workspace 質問内容〜〜@workspace: ワークスペースに関する質問を行い、情報を収集して回答@terminal: ターミナル操作に関する質問- その他タグ:
@vscode、@githubなど
スラッシュコマンド
/fix: 選択したコードの修正案を生成/explain: 選択したコードの意味や動作を説明
詳細は公式ドキュメントを参照してください。
コンテキスト変数
以下の変数を用いてCopilotに指示を出せます。
- #selection: エディタで選択した範囲
- #terminalSelection: ターミナルで選択した範囲
- #codebase: プロジェクト全体のコード
実践例
コードの意味がわからない場合
Copilot Chatでplaintext@workspace /explain #selectionと入力
selectionは、該当のコードのコピペでもOK。
それでも分かりにくい時は、@workspace /explain #selection の後に「子供でもわかるように説明して」や「中学生でもわかるように」をつけると、平易な言葉で詳細に解説してくれることが多いです。
プログラムの書き方がわからない時、実装の方針が立てられない時
-
copilot chatで質問する。ワークスペースを参照してほしい場合は、
@workspaceをつける。 - 例:@workspace ログイン機能を実装したい。どのように実装すればいい? -
もしくは、コメントで実装したい内容について記述する。 - Pythonの場合、
#ログイン機能のテストなど。 -
提案されたコードを自分の頭で理解する。わからないときは
/explainを使うなどして理解を助けてもらう。
構文を忘れてしまったときに活用
- Djangoのテーブルにデータを入れる方法を忘れてしまったとき
- HTMLからJSXに対応させるとき
- 単純なタスクをやらせるとき
- 指定した条件でDockerFileの作成
- 他の人から引き継いだタスクに取り組むとき
- 他の人が書いたコードの解析
/explain と @workspace をつけて、該当コードのところを説明してもらう。
バグが起きている箇所の修正依頼
/fix と @workspace をつけて、該当コードのところを修正してもらう。
コードをリファクタリングする場合
複数人で開発をしている場合、解釈の違いや見落としで不要なコードが出やすいので、コードのリファクタリングの際に活用できます。
例1: コードの簡素化
「このコードをリファクタリングして、より簡潔で可読性を向上させてください。」
例2: 冗長なコードの整理
「このコードから冗長な部分を取り除き、再利用可能な関数を作成してください。」
例3: パフォーマンス改善
「このコードのパフォーマンスを改善するために効率的なアルゴリズムを適用してください。」
リファクタリングのプロンプトを使用する際の注意
- 変更したいところだけ絞ってプロンプトを入力する
- 参照するコードが多すぎると返答に時間がかかることがあります
Copilot Editsを使用すれば、複数ファイルを同時にリファクタリングも可能です。
Github Copilot使用時の注意事項
- 安易にコードを適用しない - Copilotにはボタン1つで変更を適用する機能がありますが、なるべく手でコピペ or 見て書くを意識しています(想定しない箇所が変更されるのを防ぐため)。