Go 1.9 Release Party in Okinawa に参加した
とっても楽しかった!!
沖縄よりGo1.9リリースおめでとうございます!!#go19party #golang pic.twitter.com/BS73QfvWcS
— 西島 幸一郎 (@k_nishijima) 2017年8月25日
初めの 1 時間は deeeet さんの資料をみんなで読み進めながら、この機能はどう使うんだ?って話し合っていた。
死霊です #go19party / “Go 1.9 Release Party in Tokyo” https://t.co/6FGQhaa2qP
— Taichi Nakashima (@deeeet) 2017年8月22日
印象に残っているのは Monotonic Clock の導入について。Go 1.8 の time.Now()
はあくまで「現在の正しい時間」の取得に向いている Wall Clock のみだったが、 1.9 から時間計測にも向いた仕様に変更されたとのこと。つまり、閏秒や ntpd による時間の削除(変更)が行われた時もきちんと計測が可能になったとのこと。
もう一つは sync.Map
について。これを使うよりは自前で実装した方がシンプルなのでは?といった疑問を持っていたが、この資料を読んで並行処理中の map の排他処理は一筋縄ではいかないようで、自前で実装するくらいなら色々便利な機能が含まれて高速な sync.Map
を使った方が良い感じがした。
LT
今回の LT で Go で CLI ツールを作る時に error をどんな感じに返しているか、オプションの処理はどうしているのかといった話をした。
最終的に os.Exit
へ結果を持っていくような構成にしているため、どんな方法を用いて exitcode を error に合わせた値を返すようにしているのかといった Tips を紹介した。
github.com
こういった知見を久しぶりにちゃんとアウトプットできてよかったし、何よりパーティが楽しかったから本当に参加してよかった。