golang.tokyo #2 に行ってきた

最近golang熱いな‐と思っていたところ、このようなイベントを発見。申し込みしようとしたときには101人目で人数オーバーしてた、大変人気のイベントでした。 見事抽選に当たったので、行ってきました。 本日の講演は @deeeetさんと@Songmuさんで、ふたりともみんなのGoを書いた方だったので、だいぶ推された感じありましたw でもだいぶ実践的な内容なのでおすすめです!

テストし易いGoコードのデザイン

まずは@deeeetさんの発表。

テストしやすいGoコードのデザイン

全部みてみたい。。

兎に角いろんなパターンのテストしづらいケースを紹介し、それを防ぐ方法を紹介していました。 interfaceを定義し、抽象化することでDIを実現するというのが、主な感じですかね。 TableDrivenのアプローチと所謂副作用的なところは、mainに固めようというアプローチはなるべく心がけてみようと思いました。

MakerelでのGoの話

@Songmuさんの発表。

OSSの公開の理由が"公開しない理由がないから"というのは、男気あっていいなと思いました。 OSSとして公開するときにだれがメンテするのかという話において、持ち回りで当番をきめているという話でしたが、うまく行っていないとのこと。 まぁそもそも持ち回りで当番できるくらいみんなレベル高いんだろうなぁと。 CIまわりだったり、テスト関連で細かいTipsが聞けて面白かったです。

交流会

はてなさんスポンサーでピザとお酒が支給されました!ありがとうございます! ピザは食べられませんでしたが、直前に重めのハンバーガー食べてたので満足です。

LT大会

Plain db import with Go

@timakinさん

speakerdeck.com gopliというOSSの紹介。 seedデータの注入は確かに開発段階で問題になるなぁと思いつつ、 個人情報まわりをちゃんと隠蔽しながらその辺だけFakeデータを引っ張ってこれると非常に面白いツールになりそうだなぁとおもいました。 DBのコネクション数とかパケット数の上限とか色々気にしないといけないんですね。

Go で始める JSON-RPC 入門

@osamingoさん

speakerdeck.com JSON RPCのツール他にイケてるの無いので作ったよっていう話。 JSONRPC自体は使っている技術が枯れているので、非常に敷居は低い感じしますが、そのJSON自体のバリデーションとかってどうやってるのかなぁと気になりますね。 osamingoさんも最後に言ってましたが、gRPCとかでちゃんと対応して行くというのが今後流行っていくんじゃないかなぁと個人的には感じています。

Continuation Deploymentの話

東郷さん

deliveryではなく、deploymentもやっちゃうという話。 dockerで本番運用しているとのことですが、まだちゃんと運用してうまくいっているという話を聞いたことがあんまり無いので、 非常にきになります。 Travis CIのdockerコンテナがubuntuだけど、作ったサービスはAlpine Linuxというところで環境依存が発生してしまったと言う話がありましたが、 Travisってwerckerみたいにコンテナ立ち上げるの前提っていうわけじゃないんですかね。Docker on Dockerをしたという話ですが、previleged = trueって安全性どうなんだろうってきになりました。

qiita.com

まとめ

今回2回目のgolang関連の勉強会に出席しましたが、言語縛りの発表は中身が濃くて面白いですね。 今後も時間が合えば参加したいと思います。