検索
ニュース

AIペアプログラミング「GitHub Copilot」を試したくなる! 8つの便利な利用法がこれだ非英語話者のサポート、辞書作成、コードテストなど

GitHubはAIペアプログラミングツール「GitHub Copilot」の楽しく有益な8つのユースケースを紹介した。コードのテストに役立てることはもちろん、不慣れなプログラミング言語を慣れ親しんだプログラミング言語に翻訳するといった使い方もできるという。

Share
Tweet
LINE
Hatena

 GitHubは2022年9月14日(米国時間)、2022年6月に一般提供を開始した「GitHub Copilot」について、楽しく有益な8つのユースケースを紹介した。

 GitHub Copilotは「Visual Studio Code」「Visual Studio」「Neovim」、JetBrainsの一連の統合開発環境(IDE)などで拡張機能として使用できるAIペアプログラミングツールだ。GitHubは「AIペアプログラマー」とも呼んでいる。

 開発者がコードを入力している間に、編集中のファイルや関連ファイルのコンテキストを分析し、個々の行や関数全体の候補を提案する。「Python」「JavaScript」「TypeScript」「Ruby」「Go」「C#」「C++」などのプログラミング言語に対応している。

 GitHub CopilotはOpenAIが開発した新しいAIシステム「OpenAI Codex」を利用して機能する。Open AI CodexはOpenAIが開発した強力な自然言語処理モデル「GPT-3」(Generative Pre-trained Transformer 3)をプログラミングタスク用に微調整したバージョンだ。

(1)英語が母語でない開発者をサポートできる

 GitHub Copilotは英語以外の言語も理解できる。例えば、次の例では、スペイン語の「importar」というコメントを英語の「import」だと理解して素早く補完し、コメントに書かれている通りに、必要なライブラリをインポートしている。


GitHub Copilotがスペイン語のコメントを解釈しているところ(クリックで再生、提供:GitHub)

 さらにGitHub Copilotは、英語から他の言語への翻訳もサポートしている。次の例は「answer」「question」「date」という単語をさまざまな言語に翻訳できることを示した“MilMikDev”氏のツイート動画だ。


GitHub Copilotで「answer」「question」「date」をさまざまな言語に翻訳(MilMikDev”氏のツイート動画)(クリックで再生、提供:GitHub)

(2)ルックアップデータの辞書を作成できる

 GitHub Copilotを使うと、ルックアップデータの辞書を作成できる。例えば、「2文字のISOコードとそれぞれが表す国名の辞書を作成する」というコメントを付け、最初の数行のコードを書くと、GitHub Copilotが期待通りの結果を生成してくれる。


GitHub Copilotで2文字のISO国コードとそれぞれが表す国名の辞書を作成(クリックで再生、提供:GitHub)

(3)コードをテストしやすい

 記述したコードに対してテストを書くことは、ソフトウェア開発ライフサイクルの中で重要なステップだが、退屈な場合もある。GitHub Copilotはパターン認識とパターン補完に優れているため、単体テストやビジュアルリグレッションテストなどを書くプロセスを加速できる。

 GitHub Copilotをテストに使うための学習リソースとして、GitHubは次の3つのWebサイトを挙げている。

Using GitHub Copilot to Automate Tests(GitHub Copilotによるテスト自動化)、Colby Fayock氏のApplitoolsでのブログ記事
Make Testing Easy with GitHub(GitHubでテストを容易に)、GitHubのApplitoolsでのウェビナー
Writing Better Tests with AI and GitHub Copilot(AIとGitHub Copilotでより良いテストを作成)、CodeCovのブログ記事

(4)正規表現によるパターンマッチングがたやすい

 GitHub Copilotを使えば、正規表現を試すプレイグラウンドで時間を費やしたり、開発者向けのQ&Aサイト「Stack Overflow」で正規表現について調べたりする手間がかからない。コメントや関数名を書くことで、GitHub Copilotによる正規表現を用いたパターンマッチングを生成できるからだ。


Copilotで正規表現を使って電話番号を検証しているところ(クリックで再生、提供:GitHub)

GitHub Copilotで正規表現を使って文字列から空白を削除しているところ(クリックで再生、提供:GitHub)

(5)技術面接の準備に役立つ

 一部の開発者は、就職の面接を準備するためにGitHub Copilotを利用している。その方法は次の通りだ。

まず、GitHub Copilotを使わずに問題を解いてみる

問題を解いているときに、ひどく行き詰まって落ち込んでしまったら、GitHub Copilotを有効にし、問題の良い解き方のアイデアを得る

その後、GitHub Copilotが生成したコードを削除し、GitHub Copilotを無効にして、新しい情報を踏まえてもう一度解き方を考えてみる

 この方法により、めげそうなときでも立ち直れる。メンターや仲間がいなくても、投げ出すことなく、新しい視点が得られる。GitHub Copilotはいわば、デジタルメンターになるのだ。

 チェスのプレイヤーがスキルアップのためにAIエンジンと対戦するように、開発者もAIによって自分と違う問題解決アプローチに触れることで、問題解決力を磨くことができそうだ。

 アルゴリズム問題の解決にGitHub Copilotを利用する方法の解説を、GitHubがDev Communityサイトに投稿している。次の例では、「write a binary search algorithm」(二分探索アルゴリズムを書く)というコメントと、関数の1行目を書くと、GitHub Copilotがその関数を正しく完成させている。


コメントと関数の1行目の入力を受け、関数を完成させるGitHub Copilot(提供:GitHub)

(6)ツイートを送信できる

 ツイートを送信する際にTwitterアプリケーションを使うのは当たり前だが、IDEからツイートするのも楽しいだろう。GitHub Copilotでツイートを送信する方法の解説を、GitHubがDev Communityサイトに投稿している。


GitHub Copilotを使って送信したツイート(提供:GitHub)

(7)Vimを簡単に終了できる

 「Vim」初心者の開発者は、このエディタを終了しようとして苦労することがよくある。これは非常にありふれているため、インターネットミームになっているほどだ。GitHub CopilotはVimのフォーク版であるNeovimで利用できるので、Brian Douglas氏による次の動画のように、GitHub Copilotを使ってNeoVimを終了できる。


「How do I exit vim?」(vimを終了させるにはどうする?)というコメントを書き、GitHub Copilotを使ってNeoVimを終了させる(クリックで再生、Brian Douglas氏の動画)(提供:GitHub)

(8)Copilot Labsで新しいコードベースをナビゲートできる

 「GitHub Copilot Labs」は、GitHub Copilotのアクセス権に付属する補完的な拡張機能だ。サイドバーから使用でき、コードをあるプログラミング言語から別の言語に翻訳したり、コードスニペットについてのステップ・バイ・ステップの説明を得たりできる。

 新しいコードベースを把握するのは容易なことではない。だが、GitHub Copilot Labsの「LANGUAGE TRANSLATION」(言語翻訳)機能により、コードスニペットを慣れ親しんだ言語に翻訳し、「EXPLAIN」(説明)機能を使って理解することで、複雑なコードブロックを理解しやすくなる。


Copilot Labsの「LANGUAGE TRANSLATION」機能でコードを翻訳しているところ(クリックで再生、提供:GitHub)

Copilot Labsの「EXPLAIN」機能の使用結果(提供:GitHub)

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る