はじめに
Visual StudioでGitHub Copilotを4月くらいに導入し、結構面白い機能だったのでまとめてみます。
Copilot ChatやCopilot Xあたりも気になるので、機会があれば試してみたいです。
インストール
インストール手順はMicrosoftのドキュメントの通りです。
プランは基本有料なのですが、個人プランは30日間の試用期間があり、その間に有用性を感じたので有料でもその後も使い続けています。
どんな感じか
簡単に言えば以下のような感じに次に記述するコードを提案してくれる機能です。
これは私が要素を上に移動するMoveUpコマンドを実装しており、次にMoveDownも実装したいなぁ~と思っていたところドンピシャなコードを提案してくれて、ついスクリーンショットを撮ってしまったところです。
この例は実装コードでしたが、コメントも前後の内容を踏まえて良さげな文章を提案してくれたり、実装コードに対してコメントを入れようとすると実装をいい感じに言語化してくれたコメントを提案してくれます。
これによりTabキーを押していくだけでどんどんコードが出来上がり、特に同じような記述やコメントが複数回出てくるような単体テストの実装ではTabキーを押していたら実装が完了してしまったこともありました。
思ったところ
そもそもの実装コードが充実(充実とは単純な実装量だったりコメントでの説明が豊富という意味です)している場合により効果が発揮されると感じました。
基本的にすでに記述されている内容のフォーマットだったり書きっぷりを真似して提案してくれるので、提案するための情報が多ければ多いほど、より利用しやすい提案をしてくれる感じがします。
逆に注意すべきだなと感じたのは、以下の点です。
- 提案が正しいわけではないため検証は当然必要。
- すでに実装してあることのバリエーションを補完してくれるような場合は大概良いですが、コメントでやりたいことを記載して自動生成されたコードが本当に行いたいことを実現してくれているのかは要チェックです。コメントでは書ききれなかった要件を満たしていないことやパフォーマンスが低いやり方をしている場合もあります。
- 著作権やライセンス問題
- 他のプロジェクトから取得された可能性があるコードかもしれないという使用面の問題もありますが、ビジネスのコードに使う場合収集されてしまう可能性もある点です。
- それらは以下の設定ができるので会社のチームで導入などを考えている場合は設定を推奨します。
- Suggestions matching public code で公開されているリポジトリに含まれるコードとほぼ一致する場合は提案しないようにする。
参考:https://dev.classmethod.jp/articles/intro-github-copilot-for-business/#toc-5 -
Githubのアカウントの設定からCopilotの改善に使われないようにする(以下はビジネスプランだとそもそも設定できなくなるみたいですが)
- Suggestions matching public code で公開されているリポジトリに含まれるコードとほぼ一致する場合は提案しないようにする。
さいごに
ChatGPTあたりと同じで強力なツールですが、何も考えずに使うとかえって問題につながることもあるかもしれません。 うまく活用して簡単なことはCopilotにまかせて重要なことを考える時間を増やしていきたいですね。