---
title: GitHub CopilotがIntelliSenseの進化形すぎて手放せなくなりそう
tags: 
author: [須藤圭太](https://www.docswell.com/user/suusanex)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/D7YVMXD47M.jpg?width=480
description: 次のイベントで発表した資料です。 【オンライン】Build 後！ C# Tokyo イベント - connpass https://csharp-tokyo.connpass.com/event/287899/
published: July 11, 23
canonical: https://www.docswell.com/s/suusanex/K4QJPL-2023-07-11-205606
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/D7YVMXD47M.jpg)

GitHub Copilotが
IntelliSenseの進化形すぎて
手放せなくなりそう
2023/7/11 須藤（suusanex）


# Page. 2

![Page Image](https://bcdn.docswell.com/page/VENMW166J8.jpg)

自己紹介

ID：suusanex（ connpass・Twitter・GitHub共通）

名前：須藤圭太

サイエンスパーク株式会社という独立系ソフトウェアベンダーに所属

4年ほど受託開発で、上流から下流まで全部を回す

ここ8年ほどは、自社製品開発も担当

Windowsアプリ開発のネタが多い

勉強会もやってます。

https://sciencepark.connpass.com


# Page. 3

![Page Image](https://bcdn.docswell.com/page/Y79NX5LR73.jpg)

概要

GitHub Copilotを使ってみたら、思った以上に即効性のある便利さだった

使ってみないと分かりづらいので、実例を紹介してみます

注意点：

生成系AIにつきまとう、著作権の問題、学習・セキュリティの問題などには触
れません

単純に、新技術として使ってみてどう便利だったかを紹介します


# Page. 4

![Page Image](https://bcdn.docswell.com/page/G78K2YXGJD.jpg)

そもそも、GitHub Copilotって何？

コードの文脈を考慮して、次のコメントやコードを提案してくれる

つまりIntelliSenseに文脈理解・予測・生成などが加わった進化形

いわゆる生成系AIだが、開発IDE（VisualStudio等）に最適化

コーディング補佐としては、ChatGPTなどよりもかなり効率よく使える

有償（個人プラン 月額$10）

※私見で超訳した紹介なので、正確なところはオフィシャル情報を見てくださ
い
https://docs.github.com/ja/copilot/getting-started-with-github-copilot


# Page. 5

![Page Image](https://bcdn.docswell.com/page/L7LZ248XER.jpg)

ChatGPTに聞けば良くない？

ChatGPTなどは、前提条件や文脈などを伝えた後に、問題を問う必要がある

（プラグイン次第かもだが）回答をコードへコピペする必要がある

つまり、手間が多い

GitHub Copilotは、IDEで開いているファイルから、前提条件や文脈を勝手に読
み取ってくれる（らしい）

IDEと連携（VisualStudioではIntellisense）するので、回答がそのままコードに
書かれる

つまり、手軽

プログラマが常用する場合、この差は結構大きい


# Page. 6

![Page Image](https://bcdn.docswell.com/page/4EMV8K63EW.jpg)

いくつかの実例を・・・

コーディング中にちょっとずつ助かるタイプの動きなので、プレゼンで紹介し
づらい・・・

当たり障りのないコードに置き換えて、説明を試みます


# Page. 7

![Page Image](https://bcdn.docswell.com/page/PER25XPR79.jpg)

例えば その1

bool result = Deserialize(paramData);
if(!result)

と書いたら次の生成

If(!result){
m_Trace.Write(Warn, &quot;paramData Deserialize Fail&quot;);
}

前後のコードと似た感じで、トレースログを入れてきた


# Page. 8

![Page Image](https://bcdn.docswell.com/page/P7XDK63YJX.jpg)

例えば その2

//dbへテスト用のレコードを10個追加する

と書いたら次の生成

for (int i = 0; i &lt; 10; i++)

{

db.AddOrUpdate(new Record

{
Item = $&quot;Item{i}&quot;,

});



}
コメントだけからちょっとしたコードを生成してきた


# Page. 9

![Page Image](https://bcdn.docswell.com/page/37KX51Y4JD.jpg)

例えば その3（C++）

KeyKeyValue g_Data[100];

LPCWSTR FindOrDefault(LPCWSTR key1, LPCWSTR key2)

と書いたところで次の生成

for (int i = 0; ; ++i){

auto k1 = g_Data[I].key1; auto k2= g_Data[I].key2;

if(k1== NULL || k2== NULL) break;

if (strcmp(key1, k1) == 0 &amp;&amp; strcmp(key2, k2) == 0)
return g_Data[i].value;


}

関数名と前のグローバル変数から、なんとなく意図を汲んできた


# Page. 10

![Page Image](https://bcdn.docswell.com/page/LJ35KQ9D75.jpg)

実例について

小規模な例ばかりになってしまったが、おそらく与えるコメントなどの工夫で
もっと仕事をしてくれる

小規模な例でも、こまかい定型コードを書かなくて済むのでけっこう助かる

ChatGPT等と同じく、レビューして訂正してあげる必要はある


# Page. 11

![Page Image](https://bcdn.docswell.com/page/8JDD39G2JG.jpg)

欠点


IntelliSenseと操作系が同じなので、両方のサジェストが出て選びづらい

Resharperが入ってるともっと大変

片方のサジェストを抜けるまでタイプしたり、Esc、Tab、Enterなどの駆使が必要
IntelliSenseと連携しておらず、GitHub Copilotのサジェストを採用した場合は、
タイプミスや大小文字の違いなどを補完してくれない


# Page. 12

![Page Image](https://bcdn.docswell.com/page/VEPX4Z3LJ8.jpg)

他の機能は？

GitHub Copilot Labs拡張の追加で、さらにAsk Copilotメニューなど色々使える
らしい

まだ理解が浅いので、今日は省略して1点だけ紹介


# Page. 13

![Page Image](https://bcdn.docswell.com/page/27VLXW46EQ.jpg)

Ask Copilotメニュー

Ask Copilotメニューをコード上で開き、文章で質問を書ける

「この関数の機能は？」と聞いてみたら、割とまとも


GitHubに置いてある適当なコードのRequestWaitAsyncメソッド


# Page. 14

![Page Image](https://bcdn.docswell.com/page/5JGXVD127L.jpg)

まとめ

GitHub Copilotは、ちょっと触るだけでも割と便利

生成系AIなので、おそらく要求の与え方に慣れるともっと力を発揮する

GitHub Copilot Labs拡張はさらに楽しそう

月額$10だが、コーディングのスピードに直接効いてくるので、意外と費用対
効果は高いのでは？

引き続き使ってみるつもり


