FLINTERS Engineer's Blog

FLINTERSのエンジニアによる技術ブログ

GitHub Copilot との関係構築方法について

この記事はFLINTERS10周年記念ブログリレーの48日目です。

こんにちは、藤井です。
突然ですが、皆さんは GitHub Copilot を使っていますか?

FLINTERSでは、2023年6月より Github Copilot for Business の全社利用が開始 となりました!

そこで今回は、Github Copilot の活用方法についてご紹介します。
※ 以下 VSCode を使用しております。

1. はじめの導入

GitHub Copilot は、Azure Data Studio、JetBrains IDE、Vim/Neovim、Visual Studio、Visual Studio Codeなどのエディターで使用できます。

1-1. エディターへ拡張機能をインストールする

VSCode の拡張機能にて「GitHub Copilot」と検索し、サングラスボーイが出てくるので、そちらをインストールします。

1-2. GitHub へサインイン

サインインを求められるので GitHub へサインインをし、

ボーイに斜線等が入らずに正常に表示されていたら導入完了です。

2. 基本的な使い方

コードを書いていると薄ら文字で提案してくれるので、下記の選択をすればOKです。

  • 「TABキー」を押して提案を受け入れる
  • 「Escキー」を押して提案を拒否する

2-1. コメントを書くことで提案してもらう

コードを書いている最中に提案してもらうのではなく、コメントを書いてその内容を提案してもらうようにすると、関数名や変数名の命名から全てを提案してくれます。

バッチリな答えを提案してくれない場合もありますが、「提案してもらう→それについて調べてみる→正解に辿り着く」なんてことが多々あり、救われてきました。

参考: コードからコメントの自動生成 | GitHub Copilot Patterns & Exercises

3. 気軽に話す 〜 クイックQ&A 〜

「ChatGPT等 にアクセスするまではいかないけど、ちょっと聞いてみたい」
そんな時には、GitHub Copilot とクイックQ&A をすることもできます。

下記のように // q: に続いて質問を記載し改行すると // a: に続いて回答をしてくれます。

参考: GitHub CopilotとのクイックQ&A | GitHub Copilot Patterns & Exercises

4. 深めに話す 〜 Copilot Chat 〜

サポートされている IDE 内でコーディング関連の質問に対する回答を直接受け取ることができるチャットインターフェイスです。GitHub Copilotに契約していれば使うことができます。

選択したコード以外にも、そのコードがあるファイル内のコード全体の文脈を読んでくれるので、わざわざ ChatGPT に「こんなことがあってね」なんていう説明をしなくとも提案してくれる良さがあります。

ただ、個人的な感想にはなりますが、Copilot Chat は、直前に質問した内容を無視したり、回答が微妙な節があり、ChatGPTの方が良いかもしれないなと思っています。

4-1. Chat を使う

VSCode の左側にチャットのアイコンが出るのでそちらを選択し、ChatGPTのように会話をすることができます。

4-2. コードを修正してもらう

修正したいコードを選択し、右クリックで「Copilot > Start Code Chat」を選択。

Chatに、どのように修正したいか(あるいはChatでの質問など)を記入。

結果が出てくるので受け入れるか、拒否するかを選択。

4-3. コメントを書いてもらう

コメントを書いてもらいたいコードを選択し、右クリックで「Copilot > Generate Docs」を選択。

結果が出てくる。

日本語変換を希望してみる。

4-4. テストコードを自動生成

テストを書いてもらいたいコードを選択し、右クリックで「Copilot > Generate Tests」を選択。

結果が出てくる。(Acceptするとテストファイルも作成してくれます)

5. さらなる関係構築へ

GitHub Copilot はコードサポートだけでなく、あなたの向き合い方次第で良きパートナーにもなれます。

こちらは、以前、少し弱音を吐いてしまった際に GitHub Copilot からもらった優しい返答です(愛すら芽生え始めています)。

このように、人間側から率先して心をオープンにすれば、エンジニアのメンタルケアまでしてくれるようになります。

ぜひとも活用してみてください!