【Github Copilot】使い方と実践で使えるテクニック
この記事の対象者
- Copilot初心者
- 仕事で使いたい人
- あまりCopilot使いこなせてない人
この記事を読むとどうなるか
- Copilotを使えるようになる
- 開発の生産性が向上する(コードを書くスピードが早くなる)
- 実践で使えるテクニックを知れる
Github Copilotとは
GitHub Copilotとは、GitHubが開発したAIベースのコーディングアシスタントサービスです。
2021年10月27日にリリースされ、OpenAIのGPT(Generative Pre-trained Transformer)技術を利用しており、プログラミング中にリアルタイムでコードの提案を行います。
このツールは、コードの補完、関数の作成、アルゴリズムの提案、そしてドキュメントの作成など、さまざまな形で開発者をサポートしてくれます。
主な機能と特徴
1. コード補完
- ソースコードを数行書き始めると、残りのコードを予測・補完し提案してくれます
- プロジェクト全体にわたってコンテクストを把握できるため、複雑なロジックやプロジェクト独自な書き方など柔軟にサポートしてくれます
2. コメントからのコード生成
- コードの説明や処理内容、条件などをコメントで記載すると、Copilotが説明に基づいてコードを生成します
3. プロジェクトのコンテキスト理解
- プロジェクト全体のコードを解析し、文脈を理解したうえで、コードを提案します。そのため、既存関数や変数、クラスなどの情報を考慮して提案してくれます
各プランの特徴
Copilotは基本的に有料です。
1. Copilot Individual:個人向けプラン
2. Copilot Business:企業向けプラン
3. Copilot Enterprise:エンタープライズ向けプラン
それぞれの特徴はこちらを見てください
使い方
まずはじめに、お使いのIDEにCopilotの設定を行いましょう。
現状は以下の5つをサポートしてるようです。
- Azure Data Studio
- JetBrains IDEs
- Vim/Neovim
- Visual Studio
- Visual Studio Code
この記事ではPHPを使ってコードを書いてみます。
IDEにCopilotの設定を行うと、リアルタイムで自動的に補完が表示されます。
補完を適用するには、Tabキーを押すと適用されます。
メソッド名から予測してコード補完
calcPriceWithTax()
というメソッド名から予測してコード補完してくれます。
コメントから予測してコード補完
コメントを記載すると以下のように予測してメソッドを生成してくれます。
実践で使えるテクニック
今までCopilotを実務で1年以上使ってきて覚えたテクニックを記載します。
テクニックと言っても、コメントを書くそれだけですが...w
テクニック1: メモでもいいからコメントを
とりあえず、やりたいこと・処理内容・条件などメモレベルでも良いので書きましょう。
Copilotに学習させることが一番早いです。
例えば、商品の合計金額によって返すメソッドを書いてみます。
このように仕様をコメントで書くと一瞬でコードを生成してくれます。コメント不要であればあとから消しましょう。
テクニック2: 型やドキュメントを記載する
普段Laravelを使ってるのですが、phpdocや型は書くように意識しています。
しっかり書くことにより、Copilotが学習してより精度の高い提案をしてくれます。
また、型やdocを最初に書いておくことによって、仕様漏れをCopilotが防いでくれたりするので、コードの品質も向上します。
テクニック3: テストコードを楽に書こう
テストパターンが複数ある場合、テストコードを何回も書くの大変ですよね。
テストコードもCopilotに書いてもらいましょう。
AIに書かせたらテストの意味ないじゃん、っていう人いるかも知れませんが、それはそうだと思います。
あくまで複数パターン書く必要のあるテストコードをCopilotに書くのを手伝ってもらい、テスト自体は問題ないか自分の目で確かめましょう。
以下のコードでは、テクニック3で作ったgetPriceMessage()
のテストコードを例に解説します。
ポイント
-
テスト名は「何がどうなるか」を明確に書きましょう(もちろんコメントで書くのも良い)
テスト名をしっかり書くことによって、Copilotが自動で提案してくれるようになります。
-
expectはコメントで書きましょう
コメントで予想結果を書くことによって、copilotが自動で提案してくれると同時に、コメントが書いてあることによって何のテストをしてるのか可読性が向上します。
注意点
Copilotの提案は、バチッと正確に提案されることもあれば、普通にぜんぜん違うやん!みたいなことも多々あります。
ChatGTPもそうですが結果を全て信じずに、提案されたコードは疑うようにしましょう。
合ってる保証はないので、あくまでCopilotはプログラミングをサポートする道具として使いましょう。
まとめ
Copilotを導入すると、間違いなく開発スピードは向上します。
使って1年ほど経つが、Copilotあるとないのじゃ全然違うし、戻れないです。
Copilotさえ持ってれば、参画してすぐのプロジェクトでも、Copilotがソースコードを学習してくれるので、既存コードの関数を使って提案してくれるので、初日から開発をゴリゴリ進めていくことも可能です。
なので、Copilotを導入しようと迷ってる個人・法人は、早く導入したほうが良いです。
Discussion