
【AI自動コード完成】10分内に「ざっくり」わかるGithub Copilot!
GitHub Copilotとは?
GitHub Copilotは、コーディング中にAIペアプログラマーのオートコンプリートスタイルの提案を提供します。
Visual Studio Codeを使用している場合は、エディタ内で直接GitHub Copilotの提案を表示して統合することができます。
条件
GitHub Copilotサブスクリプション
Visual Studio Codeインストール
GitHub Copilot インストール
VS Codeを実行して下の図のようにインストールします。インストールが完了してギグハブログインが終わったら下部にパイロットの形のアイコンができます。


最初の提案を見る
GitHub Copilotは様々な言語と様々なフレームワークの提案を提供しますが、特にPython、JavaScript、TypeScript、Ruby、Go、C#、C++でうまく機能します。GitHub Copilotはデータベースに対するクエリの生成をサポートすることもできます。次のサンプルはJavaScriptですが、他の言語でも同様に動作します。
JavaScriptファイルに次の関数ヘッダーを入力します。GitHub Copilotは下記のようにグレーのテキストで関数本文全体を自動で提案します。正確な提案は異なる場合があります。

受け入れるには、Tabを押してください。

代替案を見る
特定の入力に対して、GitHub Copilotは複数の提案を提供することができます。使用する提案を選択するか、すべての提案を拒否することができます。
JavaScriptファイルに次の関数ヘッダを入力します。
function calculateDaysBetweenDates(begin, end) {
GitHub Copilotが提案を表示します。

Ctrl+ Tab ショートカットキーを押して他の提案を選択することもできます。

提案を部分的に受け入れる
GitHub Copilotの提案全体を受け入れたくない場合があります。キーボードショートカットを使用して、提案の次の単語や次の行を受け入れることができます。
提案の次の単語のみを受け入れるには、「Control+→」のキーボードショートカットのいずれかを使用してください。

色が塗りつぶされ、単語ごとに選択されていることが確認できます。
複数のおすすめを見る
GitHub Copilotが新しいタブに複数の提案を表示させることができます。
JavaScriptファイルに関数ヘッダを入力し、Ctrl+ Enterを押します。以下は10個の選択肢が出ましたね。

提案を受け入れるには、提案の上にある [Accept Solutions] をクリックしてください。すべての提案を拒否するには、タブを閉じてください。
コメントからコード提案を生成
コメント内で自然言語を使ってやりたいことを説明すると、GitHub Copilotが目標達成のためのコードを提案してくれます。
私の場合は10分をカウントダウンするタイマーを作ってほしいと自然語でお願いしてみました。 驚いたことに関数名と詳細コードまで提案してくれました。

終わりに
AIの発展が怖いです。細かいコーディングと機能実装はもうAIがほとんどやってくれると思います。 もちろん、だからといって勉強を怠ることはできないでしょう。 GitHubコパイロットを使ってみて感じたことは、自分でスマートに命令を出すことができるようにならなければならないということです。 このような時、自分のコミュニケーション能力と言語表現能力がさらに重要になると思います。 そして、全体的なアーキテクチャの枠組みをどのようにつかんで組み込むか、設計部分もかなり重要になると思いました。(AIが間違った場合、自分でデバッグする能力も含みます。)
簡単ではないでしょうが、AIに取って代わられないように勉強を頑張りましょう! Happy Coding!
向上心のエンジニア
ソンさん
【参考】
Github Copilot Docs