メルカリさんのスカラシップを利用してGo Conference 2019 Springに参加してきました

今回、運良くメルカリさんのスカラシップを利用してGo Conference 2019 Springに参加することができました!!

Go Conference 2019 Springでおもしろかったセッションを中心にブログに書き残せたらなと思います。
また、Go Conference 2019 Springの前日にも社内見学やランチなどがあり、その辺りも簡単に触れられればと思います。

参加の経緯

自分は普段、Ruby(Rails)を使うことが多いのですが、個人開発ではGoをちょくちょく使っていて、その開発の際にDBのテストはどう書くの?だったりエラー処理ってどうするのが良いの?かなどの疑問がありました。
たまたまGo Conference 2019 Springのタイムテーブルを見てたら先程の疑問が解決しそうなセッションがあり、行きたいな〜と思ってましたが交通費ツライと思ってて参加を見送ろうと思ってました。しかし、運良くTwitterでメルカリさんのスカラシップの情報が流れてきたのでダメ元で応募してみようと思い応募して参加できました。

前日

ランチ

メルカリさんとのランチ会がありました。が、当日にいきなりGoogleのGoチームも参加することに決まりマジか!ってなりました。GoチームにはKeynoteの方や明日発表する方がいて何を話そうか必死に考えてましたが、ランチ会で飛び交う会話がほとんど英語だったので正直理解しようとするのに必死でした(自分が質問して他の人に訳してもらったところくらいしかちゃんと理解できてない)
GoogleOSSの開発の話だったりGoのGenericsの話だったりエラー処理の話だったりを話してた気がします。
日本での発表が初めてだからとても緊張しているよって言っていたのはちゃんと聞き取れました!

社内勉強会

 ありがたいことにメルカリさんの社内勉強会に参加させていただきました。ガチガチの勉強会ではなくGoについての意見交換の場みたいな雰囲気で、気軽に質問ができました。こういった勉強会は気軽に開催できそうですし、他の社員さんと打ち解ける場にもできそうなのでいいなと思いました。

当日のセッション

Case studies of designing developer friendly libraries

speakerdeck.com

より良いライブラリの開発の仕方についてです。
Goの慣習に従うことや、拡張性を保つこと、コード生成を利用するなどが紹介されています。
特に拡張性を保つために、差し替え可能にする手段としてのFunctional Option Patternは使ったことがないので自分の開発に導入したいです。

エラー設計について/Designing Errors

docs.google.com

エラーの基本的なところから、そのエラーをGoでどう処理するのかを聞くことができました。
エラーは関係者によって求められるエラーが違い

  • (クライアント)アプリケーション -> エラーを識別できる
  • エンドユーザー -> 問題を解決するヒントになるようなメッセージが含まれている
  • 運用者 -> 問題の根本的な原因を調査、解決する情報が含まれている

と異なっている部分が紹介されてました。適切な情報を含んだエラーを返すことは運用する上で大事なことだし、Goに限らずアプリケーションの設計として大事だなと思いました。
また、Goでのエラーの処理としてアプリケーション固有のエラーコードを定義する方法があり、コードの見通しがよくなるしエラーの管理が楽になりそうだなと思いました。

Design considerations for container-based Go applications

speakerdeck.com

Goの実装事例を踏まえたコンテナアプリケーションの設計についてです。

  • Configration
  • Logging
  • Monitoring

の3つの設計方針を聞くことができました。
特にloggingの話で、STDOUT/STDERRに書き出し、JSON形式で構造化することでログの抽出が楽になりそうだなと思いました。

Expand observability in Go

docs.google.com

net/http/pprofruntime/traceの使い方について紹介されていました。
すごい丁寧に解説してくれたのでProfilingやTracingをあまり行ったことがない自分でも理解することができました。
実演でどう使うかを見ることができたのでスライド見ながら後で使ってみようと思います。

おまけ

自作キーボードのお店に寄って来ました。
分離式キーボードいいなってなりました。

まとめ

今回Googleの社員さんと話したり、今後の開発に活かせそうなセッションをたくさん聞くことができたので参加できてよかったです。セッションの内容は全部は理解できてないので後でスライドを見直そうと思います。
次にGo Conferenceのスカラシップがある時に応募に悩んでいる方の参考になればと思います。
最後にGo Conference 2019 Springに参加する機会を設けてくれたメルカリさんありがとうございました!