GitHubCopilot-with-VSSubscription

GitHubCopilot-with-VSSubscription

Intro

会社のサポート内でGitHub Copilotを使おう。
これはあまりに大きな文明の転換点だ。

TL; DR

VSS (Visual Studio Subscription)を利用してGitHub Copilotを導入する方法を紹介する。

GitHub Copilot

VSCode Extension for GitHub Copilot

まず、GitHub Copilotとはなんだろうか。

GitHub Copilotは、GitHubとOpenAIが共同で開発したAIベースのコード補完ツールである。Copilotは、プログラミング中に次に書くべきコードを予測し、提案を行うことで、開発者の効率を向上させることを目的としている。

GitHub Copilotの主要な機能

  1. コード補完

    • Copilotは、書いているコードのコンテキストを理解し、次に書くべきコードの提案を行う。
    • 例:関数の定義やループ、条件文の補完。
  2. コードスニペットの提案

    • よく使われるコードスニペットを提案し、簡単に挿入できるようにする。
    • 例:API呼び出し、データベースクエリ、その他の一般的なコードパターン。
  3. コメント駆動のコード生成

    • コメントを書くだけで、そのコメントに基づいたコードを生成する。
    • 例:// Fetch user data from API とコメントを書くと、APIからユーザーデータをフェッチするコードを提案する。
  4. 多言語対応

    • 多くのプログラミング言語(JavaScript, Python, TypeScript, Ruby, Goなど)に対応している。

GCopilotは書きなおすのが特に得意だ

構造体の初期化関数ともなれば提案はお手の物

generatorでforをまわすなら、中でyieldですよね、と。このfor文自体を書いてくれることも

VSCode Editorを引数にとるということは、その内容をattributeに収めるんですよね、と提案。まあここでは収めないんだけども

先に具体値あってからinterface定義ともなればスムーズに提案してくれる

日本語も達者だ

Tweet

GitHub Copilotには、コードを3割書いてもらおう。

GitHub Copilotは非常に優秀ではあるが、完璧ではない。開発者はCopilotの提案を慎重に検討し、自分のコードに適合するかどうかを確認する必要がある。なによりCopilotが適したコードを提案するためには、Copilotが参考にしたり方向性を把握できる程度にはコードの作成が必要だ。

生成後の修正が必要なのは言わずもがな。Copilotはあくまで開発者の手助けであり、開発者の責任でコードの品質を確保する必要がある。

GitHub Copilotの利用方法

  1. コードを書く際に、Copilotが次に書くべきコードを提案してくれる。
  2. 提案を受け入れるには、TabキーまたはEnterキーを押す。
  3. 提案をスキップするには、Escキーを押す。
  4. Ctrl+iや左側のメニューからチャットを行うこともできる。(キーボードショートカットの重複に注意)

GitHub Copilotの利用料金

GitHub Copilotは、無料トライアル期間を提供しているが、継続的に利用するためには有料のサブスクリプションが必要である。料金プランは個人利用と企業利用で異なり、個人利用向けには月額または年額のプランが用意されている。

GitHub Copilot for Business

GitHub Copilotは、エンタープライズ向けにも利用可能である。GitHub Copilot for Businessは、企業がチーム全体でCopilotの機能を活用できるように設計されている。エンタープライズ版では、より高度なセキュリティ機能や管理ツールが提供され、企業のニーズに応じたカスタマイズが可能である。

GitHub Copilotのメリット

  1. 生産性の向上

    • よく使われるコードスニペットやパターンを自動的に補完することで、手動でコードを書く時間を節約できる。
  2. 新しいアイデアの発見

    • Copilotの提案を通じて、新しいコーディング手法やライブラリの使用方法を学ぶことができる。
  3. コードの一貫性

    • 一貫したコードスタイルとパターンを維持するのに役立つ。

注意点

  1. プライバシーとセキュリティ

    • 個人版のCopilotが生成するコードは、公開されているコードリポジトリから学習されたものであるため、使用する際にはプライバシーとセキュリティに注意する必要がある。
  2. ライセンス

    • 提案されるコードがライセンスに違反していないかを確認する必要がある。

まとめ

GitHub Copilotは、AIを活用した強力なコード補完ツールであり、開発者の生産性を向上させることができる。多くのプログラミング言語に対応しており、新しいアイデアやコーディング手法を学ぶことができる。ただし、プライバシーやセキュリティ、ライセンスに関する注意も必要である。エンタープライズ版も提供されており、企業向けの高度な機能を利用することができる。

VSS (Visual Studio Subscription)

わが社にはいくつかの社員向けサポートがあり、VSS (for Enterprise) はその一つだ。
所定のサイトで申請を行い、上司に承認をもらった後、利用できる
上司の忙しさ次第だが、数日もかからないことが多そうだ。

VSSの説明 by ChatGPT

Visual Studio Subscription(ビジュアル スタジオ サブスクリプション)は、Microsoftが提供する開発者向けの包括的なサブスクリプションサービスである。このサブスクリプションには、Visual Studioの統合開発環境(IDE)をはじめ、さまざまな開発ツール、クラウドサービス、トレーニングリソース、サポートなどが含まれている

Visual Studio Subscriptionの主要な内容

  1. Visual Studio IDE

    • Visual Studioの各エディション(Community、Professional、Enterprise)が含まれており、サブスクリプションの種類によって利用できる機能が異なる。
  2. Azureクレジット

    • 開発者がAzureのクラウドサービスを試用できるように、月額のAzureクレジットが提供される。これにより、Azureの仮想マシン、データベース、AIサービスなどを無料で使用できる。
  3. 開発者向けソフトウェア

    • Windows、SQL Server、OfficeなどのMicrosoft製品を開発およびテストの目的で使用できる。
  4. トレーニングリソース

    • Microsoft Learn、Pluralsight、LinkedIn Learningなどのトレーニングプラットフォームへのアクセスが含まれており、最新の技術やスキルを学ぶことができる。
  5. サポート

    • 技術サポートやフォーラムへのアクセスが含まれており、サブスクリプションの種類によっては、個別のサポートインシデントも提供される。
  6. クラウドサービス

    • GitHub Enterprise、Power BI Pro、Microsoft 365などのクラウドサービスへのアクセスが含まれている。

VSSとGitHub Copilotとの関連

さて、そのVSSとGitHub Copilotはどう関係するのだろうか。

毎月付与されるAzure Subscriptionの無料Credit 150ドルを利用して、GitHub Copilotの費用を賄うことができるのだ。(VSSの特典にGitHub Copilotが直接含まれているわけではない)

VSSの申請方法

VSSの申請方法の詳細は、社内で取得できるはずなので、ここでは簡単な流れのみを説明する。

  1. 詳細が書かれたIorinのメールを見つけ、添付のパワポ資料をダウンロードする。
  2. (申請前に) 上司に事情を話し、承認をもらっておく。
  3. メール内のリンクからVSSの申請ページにアクセスする。
  4. パワポ資料を参考にして必要事項を入力し、申請する。
  5. 申請が承認されると、VSSの利用が可能になる。(最短数時間以内)

VSSでGitHub Copilotの費用を賄う

VSSの特典であるAzure Creditを利用して、GitHub Copilotの費用を賄う方法を説明する。
まずはVSSの申請承認のメールにも含まれているVSS特典ページにアクセスする。
そこにはいろいろと特典が示されているが、その中の「Azure Credit 毎月150ドル」をActivateし、それに紐づいたAzure Subscriptionを作成する。

normal GitHubでアカウント作成 and Organization作成

(社用GitHubではなく)通常のGitHubで会社のメールアドレスでアカウントを作成する

New Organization

そして、+ボタンを押してOrganizationを作成する。
Organizationの設定ページに移動し、Billing and Plansの欄から支払いとしてAzure Subscriptionを選択する。

GitHub Copilotの利用開始

先に続いてOrganizationの設定ページで、Copilot > Accessの欄から利用を開始する。

VSCodeでのGitHub Copilotの利用

GitHub Copilotに関する拡張機能をVSCodeにインストールする。

Info

VSCode上で動かせばTerminalでもJupyterでもGitHub Copilotの恩恵を受けることができる。

オマケ: VSCodeに対するVisual Studio IDEの優位性

Visual Studio IDEとVSCodeの比較 by ChatGPT

Visual Studio IDE(以下、Visual Studio)とVisual Studio Code(以下、VSCode)はいずれもMicrosoftが提供する強力な開発ツールであるが、それぞれ異なる目的やユーザー層をターゲットとしている。以下に、Visual StudioのVSCodeに対する優位性とデメリットを比較する。

Visual Studioの優位性

  1. 包括的な統合開発環境(IDE)

    • Visual Studioは、ソースコードエディタ、デバッガ、ビルドツール、テストツールなど、開発に必要なすべての機能が統合されたIDEである。これにより、単一のツールで多くの開発作業を行うことができる。
    • 特に大規模なプロジェクトや一貫した開発環境が求められる企業向けには非常に有利である。
  2. 高度なデバッグ機能

    • Visual Studioは、強力なデバッグ機能を提供している。ブレークポイントの設定、ウォッチウィンドウ、ローカル変数の監視、ステップオーバーやステップインなど、複雑なデバッグ作業を効率的に行うためのツールが豊富である。
    • さらに、Live Unit TestingやIntelliTraceなど、リアルタイムでコードの動作を確認できる機能も備えている。
  3. エンタープライズ向け機能

    • Visual Studio Enterpriseエディションは、コード品質の向上やセキュリティの強化、パフォーマンスの最適化など、エンタープライズ向けの高度な機能を提供している。
    • 例:コードクローンの検出、アーキテクチャ検証、コードメトリクス、負荷テストなど。
  4. 豊富なテンプレートとウィザード

    • Visual Studioは、多様なプロジェクトテンプレートやウィザードを提供しており、新しいプロジェクトを迅速に開始することができる。
    • これにより、開発者はプロジェクトの初期設定に時間をかけることなく、すぐにコーディングに取りかかることができる。
  5. 強力な言語サポート

    • Visual Studioは、C#、VB.NET、C++、F#、Python、JavaScript、TypeScriptなど、多くのプログラミング言語をネイティブにサポートしている。
    • 特に、.NET開発においては、他のIDEに比べて圧倒的な優位性を持つ。

Visual Studioのデメリット

  1. 高コスト

    • Visual StudioのProfessionalおよびEnterpriseエディションは有料であり、特にEnterprise版は高額である。個人開発者や小規模なチームにとっては、コストが大きな負担となる可能性がある。
  2. 高いシステムリソース要求

    • Visual Studioは、非常に強力なツールであるが、その分システムリソースを多く消費する。特に、古いハードウェアや低スペックのマシンではパフォーマンスが低下する可能性がある。
  3. 学習曲線

    • Visual Studioは多機能であるがゆえに、初めて使う際には習得に時間がかかることがある。特に、IDEの全機能を使いこなすためには、一定の学習が必要である。

VSCodeの優位性

  1. 軽量で高速

    • VSCodeは、軽量で高速に動作するエディタであり、システムリソースの消費が少ない。これにより、古いハードウェアでも快適に使用できる。
  2. 無料でオープンソース

    • VSCodeは無料で利用できるオープンソースのエディタであり、個人開発者や小規模チームにとって経済的な選択肢である。
  3. 豊富な拡張機能

    • VSCodeは、拡張機能によって機能をカスタマイズおよび拡張することができる。公式の拡張機能マーケットプレイスには、数千種類の拡張機能が公開されている。
  4. クロスプラットフォーム

    • VSCodeは、Windows、macOS、Linuxのすべての主要なプラットフォームで利用できる。一貫した開発環境をどのプラットフォームでも提供する。

まとめ

Visual Studioは、包括的な統合開発環境として、多機能かつ高度なデバッグ、エンタープライズ向け機能、豊富なテンプレートとウィザード、強力な言語サポートなど、多くの優位性を持っている。特に、大規模なプロジェクトやエンタープライズ環境での開発には非常に適している。一方で、コストやシステムリソースの要求が高い点、学習曲線が急である点がデメリットとして挙げられる。

VSCodeは、軽量で高速、無料でオープンソース、豊富な拡張機能、クロスプラットフォーム対応という点で優れており、個人開発者や小規模なチーム、クロスプラットフォーム開発に適している。しかし、Visual Studioのような包括的な統合開発環境や高度なエンタープライズ向け機能が欠けている部分がある。

どちらのツールを選択するかは、プロジェクトの規模やニーズ、予算によって異なる。Visual Studioの強力な機能を最大限に活用したい場合は、多少のコストをかけてでも選ぶ価値がある。

まとめ

VSSを利用してGitHub Copilotを導入する方法を紹介した。

コメント