こんにちは、おはようございます、こんばんは、スマートバンクでサーバーサイドエンジニアをしている佐藤(@tmnbst)です。
スマートバンクではGitHub Copilot for Businessを正式導入し、1ヶ月半が経ちました。利用中のメンバーを中心に社内の感想を聞いてみました。
※以降、個人アカウント(GitHub Copilot for Individuals)は「for Individuals」、Organization アカウント(GitHub Copilot for Business)は「for Business」と記載します。
対象読者
GitHub Copilotに興味・関心がある方を対象としています。for Individuals / for Organizationを使った事がある人も、まったく使ったことがない人も読んでいただけると幸いです。
会社としての姿勢・サポート状況
現在スマートバンクでは希望者は誰でも会社が費用を負担して利用することができます。
サーバーサイドエンジニアによるGitHub Copilotの使い方
使い始めた時期
for Individualsを2023/2/28から使い始めて、for Businessに切り替えたのが2023/4/21
主な使用言語
Ruby、TypeScript、SQL
使っているエディタ
RubyMine、DataGrip、Visual Studio Code
気に入っているところ
- 簡単な処理はほぼほぼ完璧に補完してくれる
- RSpecで似たようなテストケースを書くときに補完が効いて楽ちん
惜しいところ
- ほぼほぼ完璧に補完してくれるが故に、動かないコードだった場合に、補完されたコードを信じ切って、間違いに気づきづらい
- RubyMineのEAP版を利用した時にGitHub Copilotプラグインの対応が追いついていない
- 分析用のSQLなどを書いたりするときの補完は全く当てにならない
使い始めた時期
GitHub Copilotを2022/4ごろプレビュー版が出た頃から利用開始しました。(「もう俺の仕事はTABキーを押すだけ😭」と嘆いていました) 2023年の4月にfor Businessへ切り替えました。
主な使用言語
Ruby、TypeScript
使っているエディタ
RubyMine、Visual Studio Code
気に入っているところ
- 典型的なコードであればTABキーを押すだけで完成する(特にTS, pythonなど)
- コメント駆動開発を意識するとコードをメソッドレベルから補完してくれる
- 「いかにCopilotがペアプロしやすいか(彼にとって読みやすく、書きやすいこと)」を意識しながら書くようになります
- ルンバが掃除しやすくするために床を片付けるのに似た感覚です。
- ボイラープレート的記述を書く際も簡単
- 前職はクリーンアーキテクチャを採用していたので特に活躍してくれました
- Railsではrspecを書く際に
どのようなテストをするのか
,どのようなパターンを検証するのか
をざっくりコメントで書いておくと、より精度高くcontextブロックなどを作ってくれます。 - ChatGPTと組み合わせて使うとさらに便利です
- API Docが爆速で作れる(特に気に入っている)
惜しいところ
- Rubyの補完が弱い
- それっぽいコードを出してくるので間違いに気付きずらい
- テスト駆動と相性が良いかな?と思っています
- 開いているタブ以上の内容は読んでくれない
- Copilot Xに期待
使い始めた時期
業務でちゃんと使い始めたのは2023年3月ぐらい。2022年6月にプレビューで遊んでいたようす。
また、OSSプロジェクトにいくつか貢献したおかげか、いつの間にか無料で使えるようになっていました。けど会社の統制上はfor Businessにしたほうが良いと思ったので切り替えました。
主な使用言語
Ruby
使っているエディタ
RubyMine, GoLand, DataGrip, Visual Studio Code
気に入っているところ
- 既存のファイルにコードを足すときに既存のコードと同じスタイルで補完してくれる。特にテストコードを足す時にありがたい
- テンプレぽいコードは生成されたものを修正するだけになって楽。イディオムをググる頻度が減った
- あまり手慣れていない言語を書くときのガイドになってくれる
惜しいところ
- 開いているファイルやタブから予測している(ref)ので「うまく予測されないな〜、あっCopilotくんが予測しやすいようにタブを開いてあげなきゃ…」ってお膳立てしてる時、機械に”支配”されている気持ちになる
使い始めた時期
- 2023/4 くらい
主な使用言語
- Ruby
使っているエディタ
- RubyMine
気に入っているところ
- テスト書くときに説明文とか自動で補完してくれる
- hashから変数を取得するときとかに補完してくれて精度が高い
惜しいところ
- 特になし。最近、あまりRubyのコードを書いてないのでまだ気づけてない
使い始めた時期
- 2023/4 あたり
主な使用言語
- Ruby
使っているエディタ
- RubyMine
気に入っているところ
- コメントを書くときに自動的に補完してくれる
- Rspecのコードを補完してくれる
- Ruby歴が浅いため、自分の知らない記法など補完によって学べることがある
惜しいところ
- 特になし
- まだ親友になりきれていないので、もっと戯れて高度な使い方をマスターしたい
使い始めた時期
- 2023/3
主な使用言語
- Ruby
使っているエディタ
- RubyMine
気に入っているところ
- Rspecのコードを補完してくれるので、テストコードを書くスピードが上がった
- Rubyの習熟度が低い自分はここに時間がかかってたりしたので助かった
- RubyやRailsの機能やメソッドを調べる時間が減った
惜しいところ
- ちょっと複雑なクエリを発行する際にSQLからActiveRecordのコードに変換する機能がほしい(やり方しらないだけ?)
モバイルエンジニアでも使えるの?
使い始めた時期
- チュートリアル程度に触ったレベル
主な使用言語
Swift / Kotlin
使っているエディタ
Xcode / Android Studio
つぶやき
Android Studio Bot(今のところUS Only)がインラインでの補完へも発展していくことに期待しています 💭
Meet Studio Bot | Android Studio | Android Developers
使い始めた時期
3月中旬くらいから1ヶ月ほど、3rd party製のCopilot for Xcodeを常駐させてみて、4月中旬に辞めた
主な使用言語
Swift
使っているエディタ
Xcode
気に入っているところ
特になかったかも…
惜しいところ
- いまいち有効な使い方を見出せなかった
- 割と型補完で十分感があった
- CopilotのRecommendationの結果が時間差で返り、その際にFocusがXcodeアプリに移ってしまうので、なんかコード書いた後に他アプリへ移るとXcodeがまた前面に出てきてしまい、体験が悪い…
- 1st party製のものが出ればまた印象が変わりそう
使い始めた時期
- 導入してみようかなと思いつつ中々手を出せずに今に至る
主な使用言語
- Swift
使っているエディタ
- Xcode
会社で使ってみてわかったこと
コードを書く以外でも、会社でGitHub Copilotを使ってみてわかったことがあります。
for Individualsからfor Businessの切り替えがスムーズ
for Individualsからfor Businessへ切り替えた時に、for Individualsの支払いが自動的にキャンセルされます。うっかりキャンセルし忘れて二重で課金されていたということが起こらない、安心設計でした。
コードが学習用データに利用されることがない
GitHub Copilotはプロンプト(入力している内容、カーソル前後のコード、開いているタブの内容)をGitHub上に送信することで候補を提案します。for Businessでは送信したプロンプトは破棄され、GitHub側では保持されません。なので開発中のコードが学習に使われ他人に利用される心配はないと考えられます。
参考 : Copilot for Business does not retain any Prompts or Suggestions.
パブリックコードに一致する候補をブロックできる
Suggestions matching public code の設定をBlockにすると、サジェストしようとしたコードがGitHub上の公開コードと一致した場合に、除外して別な候補を出すようになります。これによりサジェストされたコードを使うことによって意図せずにライセンス違反をしてしまうことを防ぐことができます。この設定は所属しているOrganizationから引き継がれるので、個人で変更することはできません。
まとめ
各メンバーのGitHub Copilotの使い方、会社で利用してわかったことを紹介しました。
GitHub Copilotは現時点でも十分に開発者体験を向上させていると考えてます。また、GitHub Nextに上がっているプロジェクトも多数あるので、今後の進化にも注目したいと思っています。
スマートバンクではGitHub Copilotを使ってB/43を作り上げていくメンバーを募集しています!カジュアル面談も受け付けていますので、お気軽にご応募ください🙌
▼募集中の職種 smartbank.co.jp
▼カジュアル面談