開発効率の向上を目指し、先日「Visual Studio Code」にて「Github Copilot」導入しました。本記事では補完機能の検証内容について、共有したいと思います。
Github Copilot では以下の手順でコードの補完が行われます。
①プログラマがコードを入力
②①の内容に応じて Github Copilot がコードを提案
③Tab キーを押下
④②のコードが補完される
大まかな流れとしては、上記の内容になりますが、補完パターンとして今回は3パターンに分けてご紹介したいと思います。
・関数名からの補完
関数名から Github Copilot が処理の内容を推測し、コードを補完してくれます。
以下の図のように、補完部分はグレーアウトの状態で表示され、Tab キーを押下するとコードが実際に入力された状態になります。
この時重要なのは Github Copilot が推測し易いように、関数名や引数名の意図を明確にすることです。
・コメントからの補完
日本語のコメントからも Github Copilot はコード補完が可能です。
以下の図のようにコメントを入力後、コメントの内容に応じたコードが補完されます。
もちろん、コメントで処理内容を明確にする事が、正しい補完を得られるために必要なことになります。
・コメントの補完
Github Copilot はソースコードだけでなく、ソースコメントの補完も可能です。
以下の図のように「#」を入力した後にコメント欄以降のコード内容に応じたコメントが補完されます。
以上より、正しく Github Copilot に開発者の意図を伝える事ができれば、開発効率の向上が相当期待できると感じて頂けたかと思います。
しかし、私の個人の意見としては、Github Copilot を使用するにあたり、不便と感じる所も何点かあります。以下、2点を共有いたします。
・システム仕様に応じた補完
例えば、上記例にあった「calc_average」(= 平均値を算出)のような一般的な処理に対しては有効でありますが、システムの仕様を把握した上での補完はまだまだ難アリと感じています。特にシステム規模が大きいほど、その傾向は顕著になると考えています。
従って、現状 Github Copilot を利用する際は
・システムの仕様に依存する処理
・システムの仕様に依存しない処理(= 一般的な処理)
に分けて、Github Copilot の補完に任せる部分を切り分ける必要があるかと思います。
もちろん、とりあえず全ての処理を Github Copilot に補完させ、必要に応じて補完部分を修正するなどの使い方もあるかと思います。
・環境に左右される補完速度
今回のようにローカルPCで Github Copilot を使用する場合、PCのスペックやPCの使用状況に応じて、Github Copilot の補完速度は大きく違ってきます。場合によっては、補完コードが表示されるまで、数秒かかる事もありました。補完する内容にもよるとは思いますが、何にしても使い心地の観点からも課題はありそうです。
以上、Github Copilot の補完機能を試してみた内容となります。
開発効率の向上が期待される、と昨今注目を集めてはおりますが、やはり如何に上手く使いこなせるかが、大きな鍵となりそうです。
少なくとも、プログラマとしての技能は一定以上は必要となりそうですね。。。
また新しい情報が入りましたら、共有いたします。