GitHub Copilotの長所と短所

2021/07/09 09:17

Hrithwik Bharadwaj
フルスタックエンジニア
この記事は、著者の許可を得て配信しています。
 The Good and the Limitations of Github Copilot 

私は数ヶ月前からGPT3の助けを借りてコードを生成しようとしていましたが、最近、GitHub copilotというより良い製品を利用するようになりました。

GitHub CopilotはVS Codeの拡張機能であり、コードを自動入力したり、コメントや関数名を見てコードを合成したりすることができます。これは、同じモデルを使って構築され、何十億もの公開コードで訓練されています。

GitHub Copilotのことを友人に話したとき、最初に受けた質問は、

DSA問題を解決できるの?FAANG xDを解決するときに便利?

というものでした。

これは面白いと思いましたが、試してみたかったのです。その結果は驚くべきものでした。AIはほとんどのDSA問題を解決することができたのです。その結果の一部をここで紹介したいと思います。

その後、私はGitHub copilotを使って、メール検証の作成やGitHubへのAPIコール、さらにはシンプルなメール送信クライアントの構築など、実際の開発作業を行ってみました。

その結果、 Copilotの長所と短所が見えてきました。

もしあなたが記事を読むよりもビデオの方が好きなのであれば、記事を読む前に、GitHub Copilotを使ったDSA問題の解決に関する私のビデオをぜひご覧ください。

長所✨

シンタックスを忘れても、心配ありません。AIがあなたをサポートします

あるプロジェクトを構築しているときに、どのようなレスポンスを送るべきかというステータスコードを忘れてしまったことがあり、それについてコメントを書いたところ、回答を得ることができました。また、久しぶりにpythonを書いていたら、スライスのシンタックスを忘れてしまったことがあったのですが、その時もAIが助けてくれました。

メール検証やAPIコールのお手伝いをします

先に述べたように、学習したり、ドキュメントに頼ったりすることなくAPIを呼び出すための簡単な関数を生成したり、正規表現のコードを書いたりするのが、とても簡単にできました。(初心者の方にはお勧めしません。)

ボイラープレートコード

また、Expressのボイラープレートコードのようなものを取得する場合にも役立ちますし、mongoのスキームを書くのにも役立ちました。

全体的には、GitHub Copilotがコードに対する提案をシームレスに表示してくれるところが気に入っています。美しい仕上がりです。

短所🙃

第一世代/ベータ版製品のGitHub Copilotはあまりにも優れています。しかし、ネット上には偏った記事が多いので、他の面も紹介したいと思います。

ベストプラクティスに準拠していない

合成されたコードは、必ずしもベストプラクティスに従っていなかったり、バックエンドの開発に使用するために最適化されていなかったりします。Javascriptのように、constや===ではなくvarや===を生成してしまい、異なるバグやシャドウイングが発生することがあります。

JS開発者のためのベスト・プラクティスに関する記事をご覧ください。

バージョンコンフリクト

生成されたコードの中には、自分のコードベースのバージョンでは動作しないものがあり、コンフリクトを起こす可能性があります。また、AIが不要なコードを大量に出力することもあります。経験豊富な開発者であれば、この問題に対処できるでしょうが、もし初心者が直接AIの助けを借りて作業を始めたとしたら、実際のコードを書くよりもスタックオーバーフローに多くの時間を費やすことになるでしょう。(あ、でも、ほとんどの開発者がこういった経験をしていますよ笑)

変なCopyrightメッセージ

リンクリストをツリーに変換するコードを生成しようとしたところ、有名なDSの問題のように、AIが著作権のあるコードを表示し始め、それはStephenという人のものでした。

もしもし Stephenさん, もしこれを読んでいたら、hashnodeでフォローしてください。

よくある質問

  • 長所とは?

十分なデータを持っているので、メール検証やユーザースキーマ、APIリクエストなどの機能を作りたい場合には最適ですが、全く効率的ではないコードもあります。

  • DSAの問題を解決するのに役立つ(合法であれば)?

答えは二進法にはなっていません。必要に応じてビルディングブロックを使って助けてもらうこともできますが、そのビルディングを構築するのはあなたです。

  • 人間にとってかわることがありますか?

絶対にありません。その名が示すように、それはあなたの生活を楽にする副操縦士に過ぎません。あなた自身が、人間の物語やストーリーを理解し、コードから製品を作ることができるパイロットなのです。

ぜひ友達になってください

私の記事を読んでいただきありがとうございます。私は開発者の世界で新しい友人を作りたいと思っています。TwitterやLinkedInでぜひつながりを持ちたいと思っています。

ちょっとした考察

プロジェクトのコードを書くのに2時間以上これを使った後、copilotに慣れすぎてしまい、GitHubのcopilot suggestionを使わないと、文字通りコードに次に何を書いていいかわからなくなってしまったのです。ちょっと怖いですね。ITは開発者をさらに怠け者にする罠だと思います (笑) 。価格の発表が待ち遠しいです。

appstore
googleplay
会員登録

会員登録して、もっと便利に利用しよう

  • 1.

    記事をストックできる
    気になる記事をピックして、いつでも読み返すことができます。
  • 2.

    新着ニュースをカスタマイズできます
    好きなニュースフィードをフォローすると、新着ニュースが受け取れます。