Go Conference 2019 Autumnを振り返る

忘れないうちに書いておこうと思います。

プロポーザル提出まで

色々触発されてプロポーザルを二つ出しました。20minセッションと5minのLTとで、どちらも業務でやってきたtipsをそのまま発表したいといったものです。プロポーザルの出し方は@monochromeganeさんの以下の記事を非常に参考にさせていただきました。

初めて海外カンファレンス登壇するためにやったこと

大学でしっかりとレポートや研究等をやって来ておらず、プロポーザルの文章を考えるのに非常に悩まされました。書くだけでも思考が整理されて良いのでは思います。

また、GopherのSlackにcfp-jpというチャンネルがあるのですが、そこでプロポーザルを出した後に拝見した@hgsgtkさんの以前採択されたプロポーザルが非常にしっかり書かれていて、ああこうやって書くのかこう書けば採択されるのかと感嘆したのと、これと比較して自分の拙さを思い知りました。ここも精進ですね。 

結果20minの方はwaitlist, 5minのLTは採択していただきました。今実際に他の20minセッションを見てから思うと、まだ自分は足りてないというのを思い知らされて、結果やらなくてよかったなと思うのですがwaitlistという形で話す価値があるなと判断していただけた事は非常に自信になりました。次は20minですね。

スポンサーへの応募

9/26の終わり頃に何気なくgocon.jpのサイトを見ていたらスポンサー募集のリンクがある事に気付きました。これいつからあったのだろう、いつまで募集締め切りと書いてないし、まだ募集しているんだろうかと不安になったのですが、まあまだリンクがあるしという事でダメ元で広報チームにスポンサー募集していると伝えてみました。

そしたらあれよと言う間に動いていただき、電源スポンサーになったという連絡をもらいました。ここは会社の素早い動きと快くスポンサーになってもらえた事に感謝します。何か貢献したいなと思っていたので嬉しかったです。

当日の事前準備

電源スポンサーとして電源を設置するために広報メンバー二人と共に8時過ぎに会場に到着しました。が、肝心のタップと会社のノベルティ等を入れたダンボールがないという事で非常に焦りました。広報の二人に一旦会社に戻ってもらい、私は現場に残っていたのですが、9時過ぎにダンボールが届きました。

ここはどういう手違いがあったのかこれを書いている時点は私にはわからないのですが、荷物をちゃんと受け取る段取りは今後しっかり押さえておこうと思いました。

各セッション

全体的に私にとって難しい話が多かったです。さらっと感想を書きますが、しっかり復習しようとおきます。

Go GC algorithm 101

go gc algorithm 101 - Speaker Deck

今のGCに到るまで色々な経緯があったという事がわかって面白かったです。仕組みについては理解しきれていないので、もう一度ちゃんとスライドを読んでみます。

gotestsから学ぶテストコード自動生成のメカニズム

gotestsから学ぶテストコード自動生成のメカニズム / Automatic generation mechanism learned from gotests - Speaker Deck

gotests知らなかったです。今まで何気なく同僚の作ったテストコードをコピーして使っていたのですが、フォーマットを見るにgotestsで出力している?と思いました。仕組みは静的解析とtemplate出力なのですね。試してみたいと思います。

チルアウト

このコマのセッションは、今日も朝からで前々日も深夜まで資料を作っていてだったので相当グロッキーだったので、チルアウトルームで仮眠させていただきました。和室の休憩所でナイスでした。

Accelerate Go development with Bazel

Accelerate Go development with Bazel - Speaker Deck

protobufの生成ファイルの差分は嫌でなんとかしたいと思っているのですが、まだ自社としてはモノリスで十分なレベルの小規模なサービスしか作っておらず、オーバーテクノロジーなのかなと感じてしまいました。ビルドが早いのは黒魔術的な所があるらしく、なんでなのか気になりました。

How to develop "Container/Kubernetes Ready" Go web Application?

Go_Conference_Authmn.pdf - Speaker Deck

実直な内容で、再度コンテナ周りやk8sをおさらいする事ができました。

Beyond the Twelve Factor Appはどこか他の方の発表でもみました。ちゃんと読まねば。

Golangで並行シミュレーテッドアニーリング

Parallel-Simulated-Annealing - Speaker Deck

中で何をやっているかは何やらなのですが、自分が全くわかっていない領域の話を聞けるのは楽しいですね。巡回セールスマン問題が実際に画面に表示されながら解かれて行くのは面白かったです!完全に解を出せなくても、最適解に近づけていくというアプローチがあるのですね。

Continuous Go Fuzzing

ランダムに値を入れてテストするものだと理解していたのですが、静的解析と合わせてカバレッジと合わせて見ていくという話もあり、なるほどなと思いました。

ただまだやはりどういう時に使うべきかというユースケースが理解できていないです。まずはgo-fuzzを触ってみたいと思います。

Go で"超高速"な経路探索エンジンをつくる

Go Conference 2019 Autumn Go で超高速な 経路探索エンジンをつくる/Go Conference 2019 Autumn go-ch - Speaker Deck

難しい話かと思いきや、アルゴリズムの話と、実装をどう早くするかという事を非常にわかりやすく説明されていて、個人的に今回のベストセッションでした。アルゴリズムは面白いし、sliceとmapの高速化はただただ勉強になりました。mapにもcapacityがあるとは思っていませんでした。mapの機構についても面白かったです。

Schema first approach to GraphQL server development in Go

GraphQL周りとそれをうまく扱うためのライブラリ群の説明等でした。GraphQLの良さが自分の中でまだ理解しきれていないので、もう一度復習します。

Goコンパイラをゼロから作ってセルフホスト達成するまで 

Goコンパイラをゼロから作ってセルフホスト達成するまで / How I wrote a self hosted Go compiler from scratch - Speaker Deck

ただ凄いという感想しかないのですが、わからないものに果敢にアタックしていく姿勢に力づけられたのと、そこから出てくる技術的ユーモア(panicのくだりが非常に面白かったです)がとても面白かったです。

LTと懇親会

三番目で発表させていただきました。

docs.google.com

どうだったでしょうか?是非ご意見ご感想いただければと思います。そもそも大分口が回ってなかったかと思うので聞き取れていたかという所から不安です。。。いつも仕事で話が聞き取れないとつっこまれていて、最近特に発表できる機会も増えてきたのでしっかり直そうとしています。

 

伝えたかったのはgormは地雷が多いという事と、sql.DBのコネクション設定は知らないでやると大変という事です。sql.DBについては今回のLTに望む前に記事を仕上げました。

qiita.com

 

他のLTの細かい感想は省こうと思いますが、以下のシンタックスシュガーの話は発表もうまく内容も面白くわかりやすくて素晴らしかったです。LL(1)を使って、シンプルでパースしやすいような言語仕様になっているから、このような挙動になっているというのが改めて理解できました。

 

Goに無名関数の糖衣構文いれたらどうなるの? / Considering the introduction of the anonymous function syntax sugar into Go - Speaker Deck

 

あとはひたすら歓談なのですが懇親会は正直非常に苦手です。雑談する事が苦手な上、周りの人が凄い人達感が溢れているように感じるので。。。ただ、ちょっとづつ人と名前とツイッターアイコンが一致してきたので、もう少しいろんな人と話にいきたいです。

 

もう一つLTの話を個別に聞かせて欲しいという方がいて説明できたのが非常に嬉しかったです。複数人向けの発表でも個人への説明でも人にメッセージを届けられると嬉しいし、届けた人に役立つと嬉しいです。

 

あと、話していて意外にまだ業務でGoを書いていないという人もいた印象でした。私自身尖った技術の話はできないですが、業務で使って詰まった経験は多々あるので、そこを中心に今後貢献、交流をしていきたいです。

最後に

Go Conferenceは非常に楽しかったし、色々考えさせられたし、学ぶところがありました。自分の技術者ライフの中で刺激となるイベントとなりました。改めて運営のみなさま、Gopherのみなさま、支えてくれた会社のみなさま、ありがとうございました!