【GitHub Copilotで何ができる?】エンジニア開発現場での使い方を紹介します!
こんにちは。プライムSIを手掛けるグループソリューション統括本部・システムソリューション統括本部の採用チームです!
突然ですが、皆さんはGitHub Copilotを業務で活用されたことはありますか?
弊社のDXソリューション本部では業務効率向上を目的として、開発に関わるエンジニアのほぼ全員がGitHub Copilotを活用しています。
今回は、GitHub Copilotはそもそもどんなツールなのか?更に、おすすめの活用方法やユーザーが陥りやすいポイントに至るまで、エキスパートに語っていただきました!
【お知らせ】
私たちの組織ではともに事業を成長させる仲間を増やすため、エンジニアからPM・PLなど幅広く積極採用中です!
詳細は以下の採用サイトをご覧ください。
お話をうかがったエンジニア
※1:人工知能(AI)の一種である自然言語処理(NLP)技術を活用したモデル
GitHub Copilotとは?
――GitHub Copilotとは、どんなツールなのでしょうか?
GitHub Copilotは、GitHubとOpenAIが共同開発したAIを駆使したコーディングアシスタントです。
もう少しかみ砕いてお伝えすると、VS Code(Visual Studio Code)※2などの開発環境の拡張機能として動作する、コーディング作業を支援してくれるツールです。
プログラミング中にリアルタイムでコードの提案を行い、開発者の生産性を向上させることを目的としたツールになります。
例えば、作業画面にコードの一部やチャットに自然言語でのコメントを入力することで、関連するコードスニペットを生成し、開発者が迅速に作業を進められるようサポートしてくれます。
※2:Microsoft社の提供する無償のコードエディタ
――なるほど。因みにGitHub Copilotには幾つかプランがありますが、それぞれの違いは何でしょう?
それでは、プラン毎の特徴についてお話します。
※3:Microsoft社が提供する、従業員が外部リソースへのアクセスに使用できるクラウドベースの ID およびアクセス管理サービス
GitHub Copilotの特徴とできること
――業務で活用する際は何ができて、どんなことに活用される事が多いのですか?
活用されるシーンは様々ですが、最も多いのはコーディングサポートとしての活用です。
具体的には、コーディングを行っている時に「さっき似たようなコードを書いたから、同じものを提案して欲しい!」というタイミングで使うことが多いです。
AIがソースコード内の情報を読み取り、先回りして同じような場面で使用すると思われるコードを提案してくれます。
それにより、全て自分でソースコードを書くよりもスムーズにコーディングを進めることができます。
次に多い活用シーンは、エラーログの解析です。
エラー発生時のログをコピーしてチャットに貼り付けると、エラーの原因と対策を教えてくれます。
エラー対応も全て自分で行うのは一苦労なので、時間が大幅に削減されます。
――なるほど。エンジニアの痒い所に手が届いて、開発現場の業務効率向上に繋がるのですね。他にはどんな場面で活用されるのですか?
自分が書いたソースコードをレビューしてもらう、なんて活用方法もあります。
もし内容に誤りがある場合は該当箇所と修正内容を提案してくれるので、相談役として使うことが可能です。具体的には一般的な記載方法や、やってはいけないことを指摘してくれるので、特に初学者に有効です。
更に、インフラ構築にも活用できます。
GitHub CopliotにはMicrosoftのAzure基盤用のGitHub Copilot Extentions※4という拡張機能が用意されており、設計、構築手順作成などを支援してくれます。一から自身の手で構築作業を行う時と比較すると、格段に効率よく構築作業を行うことができます。
また、業務時間の大半を過ごすエディタから一歩も出ずに作業を行えるので、作業中に調べ物をしたり、他のアプリへ切り替えたりするコストがかからないことも大きな特徴です。
このように、エンジニアが関わる多くの場面で活躍しているので、存在はまるで「空気」のようです。
つまり、存在しないと大変なことになるくらい困ってしまいます。
※4:開発者が開発のアプリケーションを離れることなく、好みのツールやサービスを使用して自然言語でクラウドを構築し、利用可能にする拡張機能を指す。
――他のサービスと比較したときの違いはどんなところですか?また、GitHub Copilotにはどんなメリットがありますか?
似たようなサービスで「Cursor(カーソル)」というものがあります。
こちらは、AIを駆使してコードの自動生成やエラーの検出、修正を行える点はGitHub Copilotと同じですが、複数のファイルを同時に処理できることが特徴です。
一方、GitHub CopilotのBusiness・Enterpriseプランでは、我々が送信したソースやプロンプトを再利用しないことが明言されており、企業が活用するうえでセキュリティ面では優位性があります。
以前はCursorが機能的に先行している部分もありましたが、今ではGitHub Copilotの機能の拡張が進んで、より魅力的なツールになりました。
例えば、GitHub Copilotにはコミットメッセージ※5機能やプルリクエスト※6のメッセージ作成支援機能があるので、利便性が高く開発者にとっては至れり尽くせりですね。
※5:ソースコードを変更した履歴(コミット)において、その変更を行った理由を記録するためのもの。
※6:ソフトウェア開発において、コードの変更を他の開発者に通知し、レビューしてもらい、最終的に本番環境のコードベースに統合するためのリクエスト。
業務効率向上に効果的な活用方法
――業務効率向上という観点で、おすすめの活用方法を教えてください。
要件定義→設計→実装→テストをGitHub Copilotの支援を使いながら、パートナーとして使う方法です。これが最も効率が上がる活用方法だと思います。
例えば、チャットでどういうシステムを作りたいのかを書き込み、そのためにはどんな要件定義をすればいいか?を聞くと、具体的な要件定義の項目を提示してくれます。
更にご自身が作成した設計書をチャットに貼り付けて、レビューをしてもらうこともできます。もし設計書に矛盾があれば、修正内容を提案してくれます。
注意点としては、大規模言語モデル(LLM)の性質上、前提条件としてこれからやりたい事を具体的に言語化して提示することが求められます。
このことにより、AIから正確な提案内容が出やすいです。
また、先ほどの「GitHub Copilotの特徴とできること」でも挙げましたが、エラーログの解析時の活用もおすすめです。
今まで様々な場面でGitHub Copilot活用してきましたが、エラー処理の検索は最も得意としているように思います。
具体的にはチャットにエラーログを貼り付けて、エラーの意味及び原因と対応方法を提示してもらうというものです。
やはり、自分でエラー解析をするのは時間がかかるので、業務効率向上に大きく寄与してくれますよ。
注意点とベストプラクティス
――ユーザーが陥りやすいポイントと対策を教えてください。
まだGitHub Copilotの理解が浅いユーザーが陥りやすいのが、チャットでソースコードの修正を繰り返すというものです。これをやると、とんでもないソースコードが生成されてしまいます。
例えば、通信機能に関するファイルでのエラー箇所の特定及び修正を行い、そのまま別の機能の作業を行うと、AIは通信機能に関するファイルを参照したままの提案をするので、誤ったアウトプットになります。
対策としては、別の機能の作業を行う際はファイルを新しくするなど参照元をリセットするのが良いでしょう。
また、こういったことに陥らないためには、公式マニュアルをしっかり読み込むことです。
ご自身で判断せず、マニュアル通りに作業を進めましょう。
公式マニュアルはこちら↓
GitHub Copilotを扱う際はAIで生成したものを正しいかどうかを判断するリテラシーが求められます。
世の中の生成AIに対して言えることだと思いますが、全て正しいものとして扱うと危険です。
生成したものを業務に反映するのはご自身の責任になりますので、内容に誤りがないか?をご自身で確認し、反映させることが必要になります。
更に、本来自分が行うべきことまでAI任せにしないという意識を持つことも大切です。
「Copilot」という単語の「副操縦士」という意味の通り、あくまでご自身が業務効率を向上させるためのサポート役として活用していきましょう。
最後に、Yoshioさんは「GitHub Universe Recap 東京」というイベントの参加レポートを執筆されていますので、ぜひご覧になってみてください!
パーソルクロステクノロジーでは幅広いポジションで積極的に採用中!
超上流から関われるプライム案件にジョインしていただけるエンジニアを募集しています。
企画から保守運用まで一気通貫で関われるSIerの組織で、エンジニアとしてのキャリアアップを目指しませんか?
現在募集中の職種は、以下リンクの事業領域「システムインテグレーション」をご覧ください。