Copilotは「知っているコードを爆速で書くためのツール」なのね

何周回遅れの話ししてんねん、かもですが。
GitHub Copilotはエンジニアの生産性(コード書くスピード)に直接メリットがあると革新したのでエンジニア全員に開放しました。その話をします。

もともとはLLMのコーディング業務の利用についてあまりビジョンを持っていませんでした。ChatGPT4はすごいし色々な局面で僕もお世話になっているのですが、ことに目の前のコードを書くという業務においては、言語化できる==コードが書ける、に近いのじゃないのかな、と思っていて具体的な使い所が思いついていません。真偽は自分で確かめないといけないという点ではGoogleと変わらないわけですし。言語化できない問題についてChatGPTをどのように使えるのかは知らないので。

そういうことでLLMつながりでGitHub Copilotもなんとなく食わず嫌い、というか敬遠してたのですけれども、1on1をするなかで皆使ってみたいと言っていたので重い腰をあげて使ってみました。結果分かりました。僕は全く思い違いをしていました。Copilotさんすみません。

Copilotは「わからないものを調べる」ためのものではなくて、「わかってるコードを素早く書く」ためにとても力を発揮するんですね。つまり。IntelliSenseのスゴイやつ的な。さすがMicrosoftの子会社。検索ツールの代替だというのは思い違いでした。どっちかというとATOKとかに近いツールです。

僕が驚いたのは、CDKでAPI Gatewayの前にCloudfrontを置こうとするコードを書いていて、書き始めてまだ具体的なコードがあまりない状態で、文字列構築のサジェストを出してくるなんて…

Copilotが、数文字からプログラマの糸を推測しているシーン
なぜrootDomainだけ外から設定させたいのがわかったのか?

他にも、ある程度書いた段階で次に書きたいのがRoute53の設定だってどうやってわかったのよ? 脳内読んでるのか?レベルの衝撃でした。

Copilotが、数文字からプログラマの糸を推測しているシーン 2
ドメイン決めてACMも設定したら、Route53も設定するよね。そうだよね。
タブを押すだけでコードが書き進む
誰のhostedZoneID?

確かにWebアプリケーションを開発していて、この世の誰も書いたことのないような全くゼロから出発して新しくコードを書いていくということは殆どなくて、大抵はいろんなものの組み合わせなので、Copilotのようなものはまさにベストフィットじゃないか。やはり食わず嫌いは良くない。自分が年老いたなと感じました。

コメントをちゃんと書けばそれに応じてコードを提案してくれるような使い方もできるらしいので試してみようと思います。こういったLLMによるコード解析と提案・解釈は確実にコードレビューのような領域にも入ってくるだろうし、そうなればますます新人の生産性も高まって面白いプロダクトも作れるようになっていくんだろうな。

というわけで、GitHub Copilotすごいな!っていう話でした。glucoseでは、社長が食わず嫌いで敬遠しているようなことも、言ってくれれば会社からお金出して皆が使えるようにするよ、っていう話でした。