見出し画像

GitHub Universe Recap 参加レポート

こんにちは、PKSHA Technology ソフトウェアエンジニアの成川です。
12 月 5 日に開催された GitHub Universe Recap に参加したのでレポートしたいと思います!

成川伊吹 | AI Solution 事業本部 ソフトウエアエンジニア
神戸大学工学部情報知能工学科卒業。在学中はスーパーコンピュータ「富岳」を用いた声帯振動による発声のメカニズムの研究に従事。2023年4月に新卒として PKSHA Technology へ参画し、金融業や製造業などのプロジェクトにおいて、システム設計からインフラ、アプリ開発まで、システム開発全般を担当。


1. GitHub Universe Recap とは?

GitHub Universe Recap とは、GitHub 主催の開発者向けイベントです。
このイベントは、11月にサンフランシスコで開催された GitHub Universe で発表された内容を中心に、最新の GitHub プロダクトに関する詳細な情報が参加者に提供されました。また、現地だけでなくオンラインでの配信も行われました。その他にも、ライブデモやブース展示、ネットワーキングパーティーなどもあり、プロダクトの使い方や導入例を具体的に知ることができました。今回のイベントの登壇資料や動画は、GithHubのイベントページにまとめられています。

GitHubだけでなく、JetBrainsなど複数の企業がブースを開いていました。スタンプラリーなどもあり楽しかったです。

ブース展示の様子①
ブース展示の様子②

2. GitHubの主な最新機能とアップデート

全てを取り上げると長くなるので、個人的に気になったものをピックアップして紹介します。

Copilot関連

<Copilot CLI>
GitHub が提供する新しい CLI ツールです。Copilot CLI は、ユーザーが何をしたいかを入力するだけで適切なコマンドを提案したり、コマンドに関する説明を行ってくれます。

コマンド例:
・gh copilot suggest:ユーザーの意図に基づいたコマンドを提案。
・gh copilot explain:コマンドの詳細な説明。

個人的に、以前より話題となっていた Warp のようなモダンなターミナルに近いと感じました。ただ、Warp がターミナルアプリケーションであるのに対して、Copilot CLI はより広範な開発環境で活用可能なコマンドツールであり、例えば VSCode の Devcontainer といった開発コンテナ環境でも使用可能なところが良さだと思います。

<Copilot Chat(エディタの拡張機能)>
IDE にて、Copilot と対話するためのチャットインターフェースが一般提供されました。VSCode だけでなく JetBrains でも対応予定です。コマンドとしていくつか便利な機能が用意されています。

コマンド例:
・@workspace:開いているワークスペースから要件に適したファイルを検索して応答する
・/explain:選択しているコードの説明
・/fix:問題の検知と修正
・/doc:コードや関数のdoc stringを生成
・/tests:テストコードの生成

<Copilot Chat(github.com上)>

IDE に加えて Web インターフェースからも Copilot Chat を利用できるようになる予定です。この機能は、コード生成だけでなく、特にコードの理解を深めるのに役立ちそうです。

イベントのライブデモでは、VSCode のリポジトリ内で Copilot Chat を使ってコミットメッセージの自動生成に関する部分について質問しながら、関連するコードの理解を深める様子が示されました。個人的には、この直感的なインタラクションが特に印象的で、コード理解のプロセスが非常に楽になると感じました。

セキュリティ

<Secret scanning と Code scanning 自動修正>

プルリクエストを作成する際、自動でセキュリティレビューを実行する機能が GitHub に追加される予定です。この機能を使えば、脆弱性の検出や修正案の提案を自動的に行ってくれます。Secret scanning 機能は、一般的なシークレットの検出に加えて、正規表現を用いたカスタム値の検出も可能です。また、プルリクエストの説明文も自動で生成してくれます。
個人的には、これらの自動化されたセキュリティチェックとレビュー機能は、コードレビューの負荷削減につながるので積極的に使っていきたいです。また、これらの機能が GitHub だけで完結できるのが魅力的だと感じました。プルリクエストの説明文の自動生成機能については、CodeRabbitなどの外部ツールと性能を比較してみたいです。

3. 所感

GitHub として「いつでもどこでも使える利便性」と「Copilotの活用シナリオの拡張」を意識していることをとても感じました。

いつでもどこでも使える利便性

公演でも「Collaborate from anywhere」と強調されていましたが、いつでもどこでも質問できるというのは強みだと思います。このようなツールを利用することで、個々の開発者がより自立して問題解決が可能になります。さらに、例えばコードの元の作成者が退職した場合や、必要なナレッジが手元にない場合でも、Copilot の存在は心強いものになると思います。

Copilotの活用シナリオの拡張

GitHub Copilot はこれまで主にコード生成ツールとして認識していましたが、最近のアップデートでその活用範囲が広がると感じています。GitHub では Copilot の活用について以下の 4 つのシナリオを提案しています。

<実験・検証>
実験・検証の段階で、希望するアプリケーションや機能の概要から初期案を Copilot と対話しながら作成できるようになりました。具体として、「TODO アプリケーションを作成したいです。タスク一覧表示を実現するコンポーネントの実装を提案してください」というリクエストを基に、プロトタイピングを進めていく例が紹介されました。個人的には、抽象的な段階でのアイデア出しは難しいことが多いので Copilot による初期の叩き台作成は非常に助かります。また、まだ将来の話ですが、issueからの修正コードの提案も見据えているそうです。

<既存のコード理解>
様々な疑問点を Copilot と対話をしながら解消していくことが可能になりました。具体的な用途として、package.json で定義されている依存ライブラリや、APIの仕様についての説明が挙げられています。例では IDE の Copilot Chat が用いられていましたが、個人的には Web インターフェースでの Copilot Chat が既存のコード理解においては有用だと感じました。特に、オープンソースや他のプロジェクトのリポジトリ理解に役立つと思います。

<新規のコード生成>
テストコードの assert 項目や繰り返しパターンなど、比較的単純だが面倒な作業は Copilot に任せて、よりコアな作業に集中することが推奨されています。ここに関しては以前の Copilot の補完機能であったりコマンドを有効的に活用していくのがいいと思います。

<評価修正>
Copilot Chat を用い、@workspace、 /explain#terminalSelection、とすることで、ターミナルのエラー文を読み取って、エラーの説明であったり修正コードの提案を行ってくれることが紹介されていました。 個人的には Copilot Chat もそうですが、Secret scanning と Code scanning による自動修正もここに入ると思います。 先程も触れましたが、脆弱性の検知であったり、コードレビューの負荷軽減はかなりありがたいので、積極的に取り入れていきたいです。CodeRabbit やその他 OpenAI ツールと違って、Copilot の料金だけでこれらの機能が使えるのも嬉しいところですね。

4.その他気になったセッション

AIを活用した開発ワークフローの可能性と展望―DeNAの取り組み―

DeNA さんの Copilot 活用に向けた取り組みのセッションです。具体的な内容はリンクの資料を参照していただきたいのですが、Copilot を活用する上での大事な3つのキーワードに共感したので共有します。

普通に使える
ここでの”普通に使える”の定義は、PC/キーボードやエディタ、リモートワークと同じ感覚で使えるということで、Copilotをかなり身近な存在として置いています。私も業務の中でCopilotを使用していますが、これから先は開発にCopilotを用いることが当たり前の環境になっていくことは間違いないと思います。

早く慣れる
各自で試すことも大事ですが、慣れるには業務で実際に使っていくことが一番だと思います。弊社では私が入社した 4 月の段階で、*社内 GPT ハッカソン、Copilot の利用、GPT を活用したシステム開発案件など、新しい技術を業務に取り入れる機会が多くありました。入社してすぐにこれらの技術を業務の中で触れられたのはありがたかったです。

*社内GPTハッカソンについて
2023 年 4 月に弊社では、GPT の理解を深めることと新たなアイデアの創出を促すことを目的に「GPT-4 ハッカソン」を行いました。エンジニアだけでなく、全社・全職種横断型のイベントとして開催し、グループ内のおよそ 100 人が参加しました。詳細は Note の記事が出ているのでそちらを参照してみてください。

顧客価値に転換する
GitHub Copilot で書かれているかどうかは顧客には関係なく、クオリティ、コスト、デリバリーを追求していくことが大切だという主張にはかなり共感しました。ただ、Copilot が生成したコードについても、最終的な判断は人が行うであったり、リスクへの継続的な対策は今後も行なっていく必要があります。

5.感想

これから Copilot の活躍の場がかなり増えそうだなと思いました。
とはいえ、あくまで Copilot は補助であり、最終的には人間が意思決定を行うというスタンスは変わっていないように思います。Copilot に全てを任せるのではなく、開発のワークフローに如何に Copilot を活用していくのかが今後の課題になりそうです。個人的にはコードの理解のところで使いたいです。github.com での Copilot Chat は定期的にリポジトリのコードをベクトル化しているらしいので、どれくらい精度がいいのか早く使ってみたいです。

―INFORMATION―

PKSHA グループでは、AI の社会実装に特化し未来のソフトウエア開発を行なっています。少しでも興味がある方は、ぜひカジュアル面談しましょう。

▼採用職種一覧

▼Wantedlyはこちら