アルパカ三銃士

〜アルパカに酔いしれる獣たちへ捧げる〜

Go 1.9 Release Party in Okinawa に参加した

とっても楽しかった!!

初めの 1 時間は deeeet さんの資料をみんなで読み進めながら、この機能はどう使うんだ?って話し合っていた。

印象に残っているのは Monotonic Clock の導入について。Go 1.8 の time.Now() はあくまで「現在の正しい時間」の取得に向いている Wall Clock のみだったが、 1.9 から時間計測にも向いた仕様に変更されたとのこと。つまり、閏秒や ntpd による時間の削除(変更)が行われた時もきちんと計測が可能になったとのこと。

もう一つは sync.Map について。これを使うよりは自前で実装した方がシンプルなのでは?といった疑問を持っていたが、この資料を読んで並行処理中の map の排他処理は一筋縄ではいかないようで、自前で実装するくらいなら色々便利な機能が含まれて高速な sync.Map を使った方が良い感じがした。

LT

今回の LT で Go で CLI ツールを作る時に error をどんな感じに返しているか、オプションの処理はどうしているのかといった話をした。

俺はこうして Go の CLI を作っている

最終的に os.Exit へ結果を持っていくような構成にしているため、どんな方法を用いて exitcode を error に合わせた値を返すようにしているのかといった Tips を紹介した。 github.com

こういった知見を久しぶりにちゃんとアウトプットできてよかったし、何よりパーティが楽しかったから本当に参加してよかった。

Golang 勉強会 in Okinawa | Doorkeeper