TISでは、生成AIを活用した開発を推進しており、その一環としてGitHub Copilotの利用を進めています。
本記事は「実践で学ぶGitHub Copilot」と題し、開発現場でのGitHub Copilotの活用方法について、ユーザーインタビュー形式でお届けします。第1弾はこちら、第2弾はこちらです。

インタビュー

今回は、IT基盤技術企画部のエンジニアである八代さんに以下の観点でお話を伺いました。

  • GitHub Copilotの利用方法
  • GitHub Copilotの利用による効率の変化
  • GitHub Copilotを最大限活用する方法

インタビューは、生成AI活用促進チームの宮下と山田が進行します。

サマリ

  • コーディング上級者のコーディング時間が最大20%削減
  • 実践で使えるGitHub Copilotショートカット3
  • 技術文書作成にもGitHub Copilotが有効

インタビュースタート

GitHub Copilotの利用状況

山田:担当されている業務領域とGitHub Copilotの利用状況を教えてください。

八代さん(以下、八代):担当している業務は、インフラ結合テストの実行と管理を行うためのツールの開発です。インフラ側の業務をすることもありますが、アプリやツール開発が中心です。
GitHub Copilotは、Reactでのアプリ開発時に利用しています。4カ月ほど利用してみた印象としては、「頭のいいコード補完」として使えるなと感じています。GitHub Copilotのコード生成機能が注目されることも多いですが、私はコード生成よりもコード補完を多用しています。

項目 内容
主な担当業務 フロントエンド開発、CI/CD環境の構築
GitHub Copilotの主な利用用途 Reactを利用した開発、Markdown記法のドキュメント作成
GitHub Copilotの利用開始時期 2024/2~
使用エディタ Visual Studio Code
作業時間の削減 コーディング時間が最大20%削減

GitHub Copilotは開発体験を向上させる

山田:GitHub Copilotを導入したことによる変化を教えてください。

八代:GitHub Copilotを導入してから、最大20%コーディング時間が削減され開発体験が向上したと感じています。
先ほどもお伝えしましたが、GitHub Copilotは「頭のいいコード補完」として利用できます。

これまでは、似たような構造の関数やDOM構造を作成する際は予測変換やコピー&ペーストを活用して大まかな内容を作成し、その後細かい部分を手動で修正していました。 GitHub Copilotを導入してからは既存のコードをもとに提案をしてくれるため、手動での修正が不要になることも多くなりました。

こういった修正作業が減ったことが、開発体験の向上の要因として大きいと考えています。

 

既存コードをもとにコードを提案するイメージ

コード補完の詳細

山田:コード補完をよく利用されるとのことですが、詳細を教えてください。

八代:新しい処理を書くケースを例にお伝えします。
まずは実際にコードを書く前に、どのような処理を作成するかイメージします。

次に、関数名を書き始めます。1文字書いたタイミングからGitHub Copilotは提案をしてくれます。期待通りの提案であることもあれば、まだ精度が高くない提案であることもあります。期待通りの内容でなければ、引き続き入力を続けます。期待通りの内容が提案された時点で、提案を受け入れます。

1文字書くと期待通りの提案がされることもあれば、すべて書き終えるまで期待通りの提案がされないこともあります。

ポイントは、GitHub Copilotの提案内容が期待値に近づくまでは提案内容を受け入れないことです。GitHub Copilotは早いタイミングからコードを提案してくれますが、期待値と異なることもあるので注意が必要です。

GitHub Copilotを有効活用する上でのポイント

山田:GitHub Copilotを有効活用する上でのポイントを教えてください。

八代:「GitHub Copilotのショートカットを使うこと」と「GitHub Copilotの提案内容をレビューすること」の2点あります。

GitHub Copilotのショートカットを使う

八代:1つ目はGitHub Copilotのショートカットを使うことです。使いこなすことができれば、作業効率が一気に上がります。
導入初期は、「Tab」のみ利用していたので、提案を全て受け入れるか全て受け入れないかの2択だけでした。それだけだと少し不便だなと思って調べたところ、「提案から次の単語を受け入れる」方法や「提案以外の別のコードを表示する」方法があることを知りました。
他にもあるとは思いますが、まずは「Tab」「Ctrl + →」「Ctrl + Enter」の3つを覚えておくと良いと思います!

アクション
ショートカットキー
提案を全て受け入れる
Tab
提案から次の単語を受け入れる Ctrl + →
提案以外の別のコードを表示する Ctrl + Enter

GitHub Copilotの提案内容をレビューする

八代:2つ目は、GitHub Copilotの提案内容をレビューすることです。
GitHub Copilotは時々、最適ではないコードを提案することがあります。動かないコードであれば問題はすぐに分かりますが、動作はするが最適ではないコードを提案されたときが最も困ります。
例えば、JavaScriptで非同期処理を実現したい場合、一般的にはasync/awaitを利用することが推奨されます。しかし、GitHub Copilotはthenを利用したコードを提案することがあります。thenの使用は間違いではありませんが、async/awaitの方が可読性やメンテナンス性が高い場合もあります。そのため、GitHub Copilotが提案するコードについては必ずレビューを行い、最適なコードであるか確認することを忘れないでください。

技術文書作成時にGitHub Copilotを利用

山田:コーディング以外での利用方法を教えてください。

八代:マークダウン形式の技術文書作成に利用しています。
GitHub Copilotは文脈を読み取って文章にあわせた提案をしてくれるので、技術文書作成の効率が向上します。技術文書には専門用語が多く、説明資料を作るにも時間がかかります。GitHub Copilotを有効にしておくと、頻繁に使用する専門用語やフレーズを自動で補完してくれるため入力の手間が省けます。また、提案された文をそのまま利用することで、誤字脱字を防ぐことができます。

インタビューを終えて

GitHub Copilotのコード生成機能が注目されることも多いですが、コード補完を積極的に活用することで開発体験が向上することがわかりました。コーディング経験が豊富な人にもコード補完は役に立ち、開発体験の向上につながります。
また、技術文書作成においても、文書の質と一貫性を保ちながら効率的に作成できることがわかりました。普段からコードを書く人や技術文書を書くことが多い人にとっても、GitHub Copilotは有効なツールです。ぜひ利用を検討してみてください。
八代さん、インタビューへのご協力ありがとうございました。