見出し画像

プログラミングの相棒 - GitHub Copilotで生産性を爆上げする

ChatGPTなどの登場で近い将来プログラマーが一人でもくもくとプログラミングする時代は終焉を向かえるだろう、そしてツールをうまく使いこなすことが益々重要になる。とはいえ従来の方法(ググったり、Qiitaや公式ドキュメントを何度も見たり)から脱却できていないエンジニアも多いのではないだろか?安心して頂きたい。私もその一人だ(笑)
時代遅れのエンジニアにならないために、巷で噂のGitHub Copilotについてまとめおく。

GitHub Copilotとは?

GitHub CopilotはAIツールで、開発者がコードを効率的に書くのを支援するものだ。GitHubとOpenAIにより共同開発されたこのツールは、書かれたコードを理解し、その完成形を推測して提案する。
GitHub Copilotは数十億件以上のパブリックに利用可能なソースコードラインから学習したモデルを用いており、これにより書き始めたコードに基づいて関連するコードの提案が可能になる。さらに、Copilotは新しいコードを「生成」する能力も持つ。つまり、一般的な関数やコードスニペットを記述する方法を「理解」することができる。
GitHub CopilotはVisual Studio(Windowsのみ) および Visual Studio Codeのプラグインとして利用できるため、開発者は通常の開発環境で直接使用できる。ちなみに言語はPythonが一番得意らしいのが、他にもC#, JavaScript, Go, Perl, PHP, Ruby, Swift, Type Scriptなど様々なプログラミング言語に対応している。

また、現時点(2023/05/15)でGitHub CopilotはOpenAI Codex Modelベースで開発されているが 将来的にはChatGPTでも使われれているGTP-4 ベースになりGitHub Copilot Xという名前で進化する。

こちらが現時点での全体像だ。

日本語もサポートされているようだが以降は英語前提での解説とさせていただきたい。(英語の方が精度が高いと予想)

いくつかサンプルをのせておく。以下のグレーの文字がCopilotによる提案だ。

コメントを書くとCopilotはそれを理解してクラスを提案してくれる。また、似たようなコードを繰り返し書くようなパターンではCoplitは自動補完してくれるので役に立つ。

Speakerクラスの作成
モデルの作成

正規表現なども生成してくれる。

正規表現(パターンプロパティ)をチェックするバリデーター

複数提案してくれこともある。選択できる。

複数の提案

ついでにSQL Queryを書いてくれる。

GitHub Copilot X

Copilot XはCopilotの進化版だ。上述したようにChatGPTでおなじみのOpenAPI GTP 4を使っている。既存のCopilotはコメントからコードの生成、コード補完等の機能がメインだったのに対してCopilot Xでは開発者のライフサイクル全体、つまりコードを書くIDEから、それをチームと共有するプルリクエスト、デバッグ、テスト、チャットなどを支援するAIアシスタントに進化する。


The latest GitHub previewsで様々な機能が紹介されている。幾つか気になったものをピックアップして説明しよう。

Copilot for Pull Requests

PRの説明を書くのは手間だし、あまりもモチベーションもあがらない作業だ。一方、プルリクエストの説明は、レビュアーがあなたの変更を素早く把握する手助けになる。この機能は、Copilotは、プルリクエストの変更点について、説明を提案してくれる。また、Gentestと呼ばれる機能では新たなPRによりプロジェクトのテスト負債が増えないようにするため、あなたのPR内のテストが不足しているかもしれない変更をAIが特定しテストを提案してくれる。さらに、AIを用いた問題解決、AIによるプルリクエストのレビュー、AIによるプルリクエストの完了、AIによるプルリクエストの修復など様々な機能が搭載される予定だ。これにより、レビューサイクルを短縮し、PRプロセスの流れを改善することができる。

Copilot Chat

ChatGPTに近い機能がVisual StudioやVS Codeで利用できる機能だ。Qiitaによい記事があったので参考にしてほしい。

GitHub Copilot chatが解禁されたので使ってみての感想とChatGPTと比べてどうかの所感

また、私が以前紹介した記事も参考にして頂きたい。

Copilot for Docs

ピンポイントで欲しいドキュメントを見つけるのは手間だ。チュートリアルがあまりにも基本的すぎたり、リファレンスマニュアルが不十分すぎたり、関連する情報が多数の関連性のない詳細に埋もれた複数のページに分散しているかもしれない。GitHub Copilot for Docsでは必要とする情報をより早く得るための機能を提供する。質問に最も関連するコンテンツを引き出し、カスタマイズされた要約を提供することで開発者が大量のドキュメンテーションを探し回る手間を省きます。
ぱっと見た感じではCopilot Chatの用途を絞った機能を提供している印象かな?

まずは何に関する質問かを選択して会話のスレッドをスタートする。

自然言語で質問してみる。

回答がある。

実装方法などの答えてくれる。

今後必須になるAIプログラミングで注目されているCopilotを紹介しました。少しでも参考になれば幸いです。役に立ったら"Like"をお願いします。

この記事が気に入ったらサポートをしてみませんか?