見出し画像

GitHub Copilotでプログラミングをロケット並みに加速させる方法

はじめに

こんにちは。言語理解研究所(ILU)開発本部 本社開発部の板東です。

プログラミングを嗜んでいるエンジニアの皆さん、AIを活用されていますか?今日はAIを使って皆さんの仕事のスピードを各段に速くする方法をご紹介します。
使用するのはGitHub Copilot。今までのプログラミングのスピードを、まるでロケットのように加速させることができる最強の相棒です。

ここでは、Visual Studio 2022でC#.NETを駆使した開発環境での例をご紹介します。



プログラマの魔法の杖!GitHub Copilot

GitHub Copilot、それはまさにプログラマにとっての魔法の杖!
自動でプログラムを生成してくれるAIコード補完ツールです。
AIがあらゆるプログラミング言語を理解し、コードを自動生成し、目の前にある課題をサクッと解決してくれる、正に夢のようなツールと言えます。
例えば……

  • 関数名を書いただけで、中身全体をバーンと生成してくれます。

  • あなたが考えて書こうとしているコードを先読みして、作ろうとしているコードを生成してくれます。まるで未来のあなたが書いたコードを持ってきたかのように……

  • 手動で長いコードを書く必要がなく、よく知られたアルゴリズムなら、あっという間に完成してしまいます。もう時間の悩みとはサヨナラです!

あなたにピッタリのプランは?Copilot徹底比較

Copilotは無料ではありませんが、その価値は十分あります!
プランは以下の3種類です。

GitHub Copilot のサブスクリプション プラン
https://docs.github.com/ja/copilot/about-github-copilot/subscription-plans-for-github-copilot

いずれにしろ、GitHubアカウントが必要ですので、まずはGitHubへの登録をお忘れなく!

準備はOK?すぐに使えるCopilotのインストール

まだGitHubのアカウントをお持ちでない方は、急いで登録しましょう。
英語ですが翻訳アプリを使って登録をクリアしてください。

!特にここが重要!

登録の最後の設定画面で、「Suggestions matching public code (duplication detection filter)」は”Blocked”にしてください。
公開されているコードとほぼ同じならブロックされ、著作権侵害を防げます。

Allow GitHub to use my code snippets from the code editor for product improvements」はオフにしてください。
大事なコードが無駄に外に流出するのを防ぎます。

GitHubのWebサイトでの登録が完了したら、Visual Studio 2022を起動し、GitHubのアカウントとパスワードを登録すると、いよいよCopilotの登場です。

ここが凄い!Copilotの必殺技大公開

Copilotには3つの必殺技があります。

順を追って使い方をご紹介しましょう。

新たな入力体験!コード補完で超効率化

まず、Visual Studio 2022でC#のコンソールアプリの開発を始めます。

今回は、2つのテキストの差分をとるプログラムを作ります。
これは、テキストを比較して誤りを見つけるときや、文書のバージョン管理をするときに便利な機能です。
このため、プロジェクト名は「Diff」という名前にしましょう。

ここでは、返却されるデータクラスを定義します。
自動コード補完は、自動でコードが追加される魔法のような機能です。
クラスを新規作成してプログラムを書いていくと、「offset = 0;」のセミコロンを打った瞬間に、右側に灰色で「// オフセット」のコメントが勝手に入ります。
今書いたコードの意味をちゃんと理解しているようです!
ここで〔TAB〕を押すと、灰色の部分が確定します。

次に改行を入れると、次の「public int length = 0; // 長さ」まで勝手に書いてくれます!
すごい!私の考えを見透かされている感じです。(〔TAB〕で確定)

次の行はTYPE_DELが欲しいところですが、TYPE_DIFFと出てきました。
途中で想定と違ったものが出てきても、どんどんタイプしてコードを作っていきます。

このようにして、次のようにクラスを最後までタイプして完成させます。

コード補完機能は、まさにパラダイムシフト!
プログラミングの作業が、全部自分でタイプすることから、ちょっと打つ、〔TAB〕で確定、ちょっと打つ、修正、〔TAB〕で確定……という作業に変わります。

ちなみに、コード補完機能はCopilotがなくてもVisual Studio 2022を使うだけでもある程度使えます。
まだVisual Studio 2022を導入していない人は、Visual Studio 2022をすぐに導入してください!
浮いた時間で優雅にドリップコーヒーを淹れましょう。

困ったときの救世主!Copilotチャット機能

プログラムの作り方やアルゴリズムの実装の仕方で悩んでいるあなた!
Copilotに相談することで、お悩みが一気に解決されます。

Visual Studioの右上の「チャットウィンドウを開く」というメニューを選択し、いざCopilotに質問!

次のようなチャットウィンドウが開きます。

ChatGPTと同じような感じでCopilotにやってもらいたいことを伝えます。
ここでは、先ほどのコード補完で作ったプログラムの続きの、差分をとるプログラムの本体を自動で作ってもらいましょう。

「Wuのアルゴリズムを使用して、入力の2つの文字列の差分を求めるプログラムを作成してください。」と入力し、〔 ➢ 〕ボタンで実行です。

うーん。一般的なアルゴリズムなので同様のものが存在するようですね。
このように著作権侵害のリスクにもしっかり対応しています。

気を取り直して、次のように入出力を具体的に指示するように変えてみました。ドキドキしながら入力してみてください。

WuのLCSアルゴリズムを利用して、2つの文字列の差分をもとめ、各差分を追加、同一、削除のどれかの部分文字列のリストで返すプログラムをC#で生成してください。
差分の結果は、以下のList<DIFFPAIR>型で返してください。
public class DIFF
{
    public string disp = ""; // 表記
    public int offset = 0; // オフセット
    public int length = 0; // 長さ
}

public class DIFFPAIR
{
    public const int TYPE_SAME = 0; // 同一
    public const int TYPE_DEL = 1; // 削除
    public const int TYPE_ADD = 2; // 追加
    public const int TYPE_EDIT = 3; // 編集

    public int type = 0; // 種別
    public DIFF l = new DIFF(); // 左
    public DIFF r = new DIFF(); // 右
}

〔プレビュー〕ボタンを押すと、内容が色分けされてとても便利です!

スクロールして内容を確認します。

素晴らしい!
求めていたコードが一瞬で生成されました。
問題がなければ〔✓承認〕ボタンを押して反映します。

ブレイクタイムのコーヒーと一緒に、お菓子を食べる余裕もできてしまいましたね。
この後、ちゃんとテストが必要なのはいつもと一緒です。

これが最終兵器!インラインチャット活用法

最後にイチオシの最終兵器をご紹介します!
こちらは、ぜひ使いこなしてほしい機能です。
マウスの右ボタンを押して、メニューから「Copilotに質問する」をポチッと押します。

四角いウィンドウがプログラム内に登場します!
〔ALT〕+〔 / 〕のキーの組み合わせでもこのウィンドウが出るので、試してみてください。

この四角の中で〔 / 〕を入力するとヘルプが表示されます。

コメントを書くのは大変なので、Copilotに書いてもらいましょう!
「/doc 日本語でコメントを書いてください。」のように指示します。(/docだけなら英語のコメントを生成)

右下の〔 ➢ 〕を押すと、次のように差分が表示されて、とても分かりやすいです。

ヒャッホー!地味に大変だけど大切なコメントを書く作業が一瞬で終わってしまいました!
内容を確認して問題がなければ〔✓承認〕をポチッと押します。

四角の中に、チャットの時のように、生成してほしいことを書けば、コードを生成することもできます。
インラインチャットには、他にもいろいろ便利な機能があるので、どんどん試してみてください。

おさえておきたい!Copilot活用時の注意事項

ここまでCopilotの魅力をご紹介しましたが、もちろん便利なだけではありません。
Copilotの生成結果には再現性がなく、今回の例で示したプロンプトで同じものが生成されるとは限らず、答えが変わる可能性があることにご注意ください。

Copilotは便利ですが、完璧ではないことを理解しておきましょう。
生成されたプログラムの場合でも、きちんとレビューとテストを行い、実用に耐えるようにすることが非常に大事です。

おわりに

Copilotを使いこなすことで、プログラミングの業務が効率化され、開発作業を何倍にも加速させることができる可能性を秘めていることがご理解いただけたかと思います。

まだCopilotを導入していない場合は、ぜひ、GitHub Copilotを導入してプログラミングのスピードアップを実感してください!
また、導入済みのベテランの方も、Copilotを使い続けることで、新たな魅力を発見できることでしょう。

皆さん自身で実際に使ってみて、開発作業がロケット並みに高速化することを、ぜひ実感してみてください!