9/17(火) 睡眠時間4時間半 8,423歩
自分の過去日記を読む途中で「広告って邪魔じゃないか…?」と思い、衝動的にはてなブログProを2年契約してみた。ここまで3年書いてきたから、たぶんあと2年くらいは書いているでしょう。感謝の1日30円お布施。
やったこと
仕事
今日の最初の仕事は先週の仕事を思い出すこと。
先週は酒で脳を溶かし、週末のボードゲームで引き締めてきたが、前に仕事をしたのは一週間前だったか…? とカレンダーを戻したくなるほどに仕事の記憶はない。先週末に用意しておいた今日のTodoリストによってやるべきことは分かるのだが、朝30分くらい知識の再注入と計画立てを行っていた。
先輩とも確認していざ仕事! というタイミングで、確認中だった案件が修正依頼と共に返ってくる。今日の計画、爆散!!
「これって実装を追加した方がユーザーフレンドリーですよね。私だったらこの仕様のシステムは利用したくないです」と意見を押し通し、仕事をさらに追加してしまった…。
追加した作業くらいは終えておきたかったが、タイムリミットがあったため今日は早めに仕事を終わる。
GitHub Copilot LT Meetup
移動:
今日向かうのは永田町駅、からの紀尾井町ガーデンテラス! 半蔵門線で降りてから、長ーい移動距離を経てLINEヤフーのオフィスに辿りついた。
別に散歩は嫌いでは無いのだが、永田町駅の設計者の方には1時間ぐらい公開質問会を開いてほしい。よく言えば上下左右に移動して楽しめるアトラクション。悪く言えば、先輩のコードに私の未熟な設計を足して歪になってしまった未完成のシステム。秘伝のエスカレーター継ぎ足しで道が出来上がっております。
永田町駅を利用するような人は運動不足のデスクワーカーが多いだろうからと、毎日歩くように良かれと思って設計したんだよね! そうだよね!!
武蔵小杉の乗り換えとどっこいどっこいの長さだから、今度歩くときはちゃんと歩数を計測しておこう。
さて、ガーデンテラスの中を歩いてすぐに分かるオフィスは、近代的な美術館のように落ち着いた配色で、体育館を半分に割ったような広い受付スペースになっている。自動改札機の傍で待機している人にConpassの受付票を見せて、いざオフィスの内側へ。高さ3mはあろうかというエレベーターに乗って、来客用入り口らしい18Fまで音もなくついた。エレベーターの高さまで違う! これがグローバルサイズ!! と内心はしゃいでいたが、どこの田舎もんだろうかと思われていたに違いない。
中を歩いて着いたのは公民館のような広いスペースの会議室。受付で名札に名前を書き、2Lペットボトルが並べられたテーブルに移動してオレンジジュースをコップに注ぐ。振り返ると、座っているのは募集定員60人のうち半分ほど。いつもConpassで行くような”ギーク”な会に比べると、身なりがフォーマルで年齢層が高い人が多いように見える。隠しきれない同族オーラもいくらか立ち上っていたが。
右端前の席に座って、今日もiPadのGoodNotesを開く。
発表:
今日のテーマはGithub Copilot。正式リリースからはもう2年が経つ*1が、まだまだ完全に使いこなしているとは口が裂けても言えない。
発表者の方もそれぞれ述べられたいたが、まだまだ手探りの知見が多い。被るところが多かったので、今日聞いたテクニック記録を自分なりにまとめた*2。
基本技
- 入力補完
- コメントからのコード生成
どちらも代表的な使い方。良いコードが出るまで何回か繰り返しましょうという人もいれば、精度を求めず単調な自動テストコードだけを記述させるという方もいた。
応用技
- 概要コメントの生成
コメントからコードを書かせることがあるが、その逆。よくわからないコードブロックの上にコメントアウトを入れると、概要をコメントとしてまとめてくれるらしい。これは聞けて良かったテクニック
- モックの生成
SlackAPI等、公開されているAPIではドキュメントがしっかりしているのと、良いコードの利用例も見つかりやすいため学習できているらしい。APIを利用する代わりとしてモックを作るのも得意なのだとか。
APIを利用するときにも、大体あっているコードを書いてくれるから楽とのこと。
- 不慣れな言語で書き直させる
コメントアウトした場所に 慣れている言語でコードを書くと、別の言語で書き直してくれるらしい(?)プロンプトで指示する手間を省けるとのことだったが、おそらくファイル名でCopilotが判断しているのかな…?
- ライブラリを踏まえたコード記述
ライブラリが無い状態でコードを書かせると、言語の標準APIのレベルでしか書いてもらえないが、コードへ事前にライブラリをインポートさせておくとその内容も踏まえてコードを書いてくれるらしい。ライブラリという名の外付けユニットが多いPythonなら特に役立ちそうなテクニック。
Copilotが注目された当時のテクニックぐらいしか知らなかった身としては、新鮮な話が多く、なるほどなぁ…と頷くことが多かった。
最後にGithubの中の人が講演。結局まだ完全な助手ではないので「それっぽいコード」を書くこともある。今まで通り人が良い設計をして良いコードを書くのは重要で、コードレビューの際は今まで以上に気を使って行おうね! という話だった。やっぱりプログラマの仕事はまだまだ無くなりそうにない。
懇親会:
発表が終われば懇親会…なのだが、最初のタイミングを逃した。話す場所を失い、もそもそと熱気の冷めたピザを食べるばかり。最近噂のタダ飯おじさんに見られるのは避けるか…と、人の傍で耳立てたり、背後に立って話だけ聞いたりして話だけでも持って帰ろうという姿勢を見せる。タダ飯おじさんじゃなくて、もはやタダ飯不審者だよ。
発表された方がフリーになったタイミングで捕まえて、なんとか話を聞くチャンスを得る。
私「Copilotが勝手にコードを書いてくれるため、コードを書く技術・コードレビューする審美眼が習得できないのではないかと危惧しています。どのように付き合っていくべきでしょうか」
相手「(生成AIを使っての開発は)もう不可逆の流れなので、言語仕様をよく理解する、ビジネスロジックを設計に習熟する方が大事になってくるんじゃないでしょうか」
という話だった。これからの生存戦略には大いに迷っている身のため、今日一番聞いてみたかった質問なのだが、回答いただいた内容に心の中で頭を抱える。どうやって現代の荒波を乗り越えるかねぇ。
質問が終わってまたタダ飯不審者に戻る。数分後に「Scalaお好きなんですか?」という名札に関する質問をいただいてから近くのグループで話を聞くチャンスに巡り合う。
結局、会が終わるまでそのグループで話を聞く側になっていた。グローバル企業ならではの悩みと興味深い仕様事例を聞かせていただき、ありがとうございました。
聞き上手な方と多く会ったことで調子に乗っていたが、私ってもしかして話下手だな…? 次の勉強会の目標は、知らない人3人に自分から話しかけることです。
今日の記録、1人。
家に帰って日記を書き、昨日に引き続いて『カルナハネの冒険者たち』のおまけ要素を進めて寝る。また睡眠時間が短くなっちゃった!
ごはん
朝食:菓子パン
昼食:(外食)なめろう定食
夕食:ピザと寿司
昼は歩いて数分の定食屋さんでの外食。鰯と鯖の定食が美味しいのだが、行くたびに毎回鰯のなめろう定食を頼んでしまう。塩焼きや刺身もあるのだが、「なめろう」という文字を見る度に心がそちらへ引き戻される。酒のつまみとしてもいいのだが、ごはんとの汁物との相性が滅茶苦茶いいんだよ…!
*1:参考サイト:https://github.blog/jp/2022-06-22-github-copilot-is-generally-available-to-all-developers/
*2:もうちょっと要素を多くして会社Slackでも共有したのだが、反応はいまいちだった。それが主目的では無かったとはいえ残念。