GitHub Copilot 導入を進めてます
この記事は 株式会社カオナビ Advent Calendar 2023 6日目です。
概要
iamapen です。最近は開発の傍らツール導入などをしております。
カオナビでも GitHub Copilot for Business の導入をはじめました。
AIによるコーディング支援のプロダクトで、エンジニアの開発生産性を向上させることが目的です。
同系統のプロダクトの中でもサジェストの速度と品質が高いことに加え、AIとの入出力が保存されず、学習に利用されないという点もビジネスシーンで使いやすいですね。
検証で触ってみたところ、導入するだけでほぼ全てのエンジニアの開発効率が上がりそうに感じました、とても便利です。
利用前は、AIにゼロからコードを書かせるものというイメージが強かったのですが、実際に使ってみるともっとライトなシーンでも大活躍することが印象的でした。
今回はそういった「地味にうれしい点」を紹介します。
ざっくり言語化すると以下で、具体例に続きます。
- 常時「なんとなくイイカンジ」のサジェストをもらえるのがうれしい
- かゆい所に手が届く
- 手直し前提でボイラープレートやテンプレを作ってもらうのが楽
- 記憶やマニュアルを辿る時間を省略
- 脳内のコンテキストスイッチを低減
例1: イイカンジその1
ユーザデータの配列があるとします。この例では言語はphpです。
$users = [
[
'name' => 'arare',
'gender' => 'female',
],
[
'name' => 'taro',
'gender' => 'male',
],
];
仕様変更で、構造に新しいkey age
が追加されたとします。
1件目を普通に入力して、2件目も入力しようと改行を追加すると
$users = [
[
'name' => 'arare',
'gender' => 'female',
'age' => 13, // これを入力して
],
[
'name' => 'taro',
'gender' => 'male',
// ここに改行を追加すると...
],
];
age
をサジェストしてくれます。
削減されたのはほんの数文字分の入力ではありますが、快適です、賢いです。
$users = [
[
'name' => 'arare',
'gender' => 'female',
'age' => 13,
],
[
'name' => 'taro',
'gender' => 'male',
'age' => 18 // これがサジェストされる
],
];
例2: イイカンジその2
base64をデコードする関数を読んだら
$decodedStr = base64_decode($encodedToken, true);
エラー処理がサジェストされました。
「失敗時は例外が投げられるのだったっけ?」とマニュアルを読みに行く手間が削減できています。
if ($decodedStr === false) {
throw new Exception('base64_decode failed');
}
例3: 不慣れな環境でのテンプレの便利さ
plantumlを使って簡単なフロー図を書き始めたが、アクティビティ図における分岐の記法を思い出せないというシーン、よくあります。
@startuml
title サンプルアクティビティ図
start
:A;
@enduml
ダメ元で if
と入力してみると、if文のテンプレがサジェストされました。
これを手直しして進めるだけでよいのはとても効率的です。
if (B?) then (yes)
:C;
else (no)
:D;
まとめ
伝わりましたでしょうか...?
小さなことに見えるかもしれませんが、記法を思い出すためのコンテキストスイッチは想像以上に重たいようで、サジェストをもらえることに快適感・幸福感・ストレスからの解放を強く感じています。
面倒・手間な部分を助けてもらえるので、本質的な部分に脳のリソースを集中できるわけです。
とくに、不慣れな言語、フレームワーク、ライブラリを触っている時は顕著です。
Copilotは賢く、とても上手にコンテキストをAIに伝えてくれます。
今回挙げたように、「AIにコードを作ってもらいたい」という強い目的がなくとも受けられる恩恵は多いです。
より上手な入力をするテクニック習得は後追いでいいので、未体験の人はまずは触ってみることをお勧めします。
弊社でもエンジニア全員に行き渡るよう、現在も導入を進めているところです。
※生成されたコードには人間が責任を持ち、きちんと理解した上で採用しましょう。
採用情報
株式会社カオナビでは一緒に働く仲間を募集しています。カジュアル面談も行っていますので、ご興味がある方は気軽にお声がけください。
Discussion