140
122

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【GitHub Copilot】今更ながら入門してみた!

Last updated at Posted at 2023-05-04

GitHub Copilot とは

ITエンジニアは勿論、世間でも話題のChatGPTGitHubが共同開発した
AI駆動のコーディングアシスタント(ざっくり書くとGPTベースのAIペアプロ)ツールです。

Introduction

項番 ページ内リンク
1 導入
2 機能
3 お試し
4 自動化されたコード生成
5 コード補完
6 Tabnine
7 注意
8 最後に

GitHub Copilotは現在30日間フリートライアルを行っています。
(以前は60日だったような......)

ずっと気になっていたので、GW中にtrialで使い倒してみようと思い入門します。

結論を先に書くと、素晴らしいツール! だけど新人/駆け出しで扱う場合は注意が必要といった感想でした。
まだお試ししていない方は、本記事で私と一緒にtrial登録していきましょう!

本記事が少しでも読者様の学びに繋がれば幸いです!
「いいね」をしていただけると今後の励みになるので、是非お願いします!

環境

Ubuntu22.04
Python3.1.1

事前準備

導入

以下の手順でGitHub Copilotに登録します。

  1. 「GitHub Copilot」にアクセスしてStart my free trialをクリックします。
    1.png
  2. Get access to GitHub Copilotをクリックします。(アイコン可愛い......)
    2.png
  3. 個人情報を入力していきます。trial終了日付を確認しておきましょう。
    支払情報の登録も必要です。(クレジットカード/デビットカード or PayPal)
    3.png
  4. 素敵な演出と共に登録完了です。
    GitHubは404エラーのページなど可愛いものが多くて癒しになります。
    4.png
  5. VSCode拡張で連携できるのでGitHub Copilotの拡張機能をインストールします。
    GitHub Copilot(安定版)とGitHub Copilot Nightly(最新版)があります。
    5.png
    以上でGitHub Copilotの導入完了です。

機能

本記事では詳しく触れませんが、サービス一覧や導入後にやれることは以下の記事に詳しくまとまっていたので紹介します。

お試し

以下の2機能を試してみます。

  • 自動化されたコード生成
    • コメントで機能の説明を入力し、適切なコードを生成する。
  • コード補完
    • 入力したコードに基づいて次に書くコードを提案する。

コードはPythonで書いていきます。

自動化されたコード生成

画像合成の処理を書きたいので、そのままコメント入力します。
6.png
GitHub Copilotの提案はこちら。こんないい加減なコメントでも書けちゃいました。
7.png
提案されたコードをパッと見た限り悪くはなさそうです。
ただPillowで書かれているのですが、個人的には馴染み深いOpenCVにしたいです。
8.png
引数で座標も指定したかったのでコメントに加えました。
GitHub Copilotの提案はこちら。
9.png
好みに近いコードに変わってくれました!

座標指定(x, y)もありますね。
あと個人的にはdocstring書いてくれる点がとても助かります。
余裕ない時のdocstring程、手間のかかるものはないですからね......

argumentsも試してみました。
12.png
GitHub Copilotの提案はこちら。
13.png
argsの定義までTabキー押すだけで作ってくれます。
コメントが雑な影響で引数の命名が気に入りませんが、軽く直すだけで完結しそうです。

コード補完

importで試してみました。
10.png
11.png
こちらは分かりやすく便利ですね。

Pythonはライブラリ豊富なことが利点の一つですが、偶にあるimport忘れやTypoを防げそうです。

Tabnine

GitHub Copilotと、似たようなツールとして一応無料でも使えるTabnineがあります。

TabnineはTabキーでコード補完してくれるツールです。
私もVSCode拡張で普段から使っており、以下3点が便利に感じます。

  • 型定義面倒な時に便利。
  • うろ覚えな内容を検索せずともサジェストしてくれて便利。
  • Typo防げて便利。

TypeScript書く時は割と助かっていますが、PythonではTypo対策くらいですかね。
練度なのか言語特性なのか定かではありませんが、少なくとも無料版では便利な拡張機能の一つ。
といった印象です。

Tabnineは無料版を使っているため恐縮ですが、GitHub Copilotと比較すると精度が段違いで後者の方が良いですね。

trial終了後はTabnineに戻る想定でいましたが、使用感次第では有料で継続も見えてきそうです。

注意

使用感は文句無しですが、良い点ばかりではありません。

本記事の冒頭で以下のように書きました。

素晴らしいツール! だけど新人/駆け出しで扱う場合は注意が必要

  1. 提案されたコードの修正
    GitHub Copilotが提案したから必ず正しい! ではないです。
    動作の検証や要件に合った修正、ハイパフォーマンスにするための改善等は必要です。
  2. 著作権/ライセンス問題
    GitHub Copilotが提案するコードは、他のプロジェクトから取得されたものである可能性があります。
  3. 開発力/問題解決力の低下
    GitHub Copilotは個人開発や簡単なスクリプトであれば作成できてしまうと思います。
    趣味で遊ぶには良いかも知れません。
    ただ、IT エンジニアとして必要なスキルはGitHub Copilotに依存することでも提案のためのコメントを適切に書くことでもありません。
    コード提案後に内部処理やパフォーマンスを理解し、より良いコーディングを学ぶことが必須になってきます。

簡単なコーディングにかける時間をGitHub Copilotで短縮し、空いた時間を以下のこと等に使えれば良いと思います。

  • 公式ドキュメント等による具体的な処理の理解。
  • より多くのコーディング。
  • 趣味のお時間。

最後に

良くも悪くもGitHub Copilotは強力なツールであり、優秀なペアプログラマーでした。

想像以上に便利だったため、若干落ち着いてきていたモチベーションアップに繋がりました!
今後の継続を見極めるためにも、暫くはコーディングに励んでいきたいです。

最後まで閲覧頂きありがとうございました。

本記事がお役に立てば幸いです!

140
122
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
140
122

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?