mercari.go #16 を開催しました #mercarigo

はじめに

こんにちは、mercari.go スタッフの @otter です。

07月19日にメルカリ主催のGo勉強会 mercari.go #16 をオンライン配信にて開催しました。 この記事では、当日の各発表を簡単に紹介します! 動画もアップロードされてますので、こちらもぜひご覧ください。

スレッドセーフな時間を固定するテストヘルパー

1つめのセッションは @tenntenn による「スレッドセーフな時間を固定するテストヘルパー」です。 time.Now() を使っているとテストでは時間を固定する必要が出てくることが多々ありますが、その手法は人やチームで様々です。 今回、紹介された testtime を利用すると既存のコードを変更せずにテスト用に時間を固定できます。 また、スレッドセーフを実現している仕組みや go1.16 から追加された overlayフラグについての説明もありました。

発表資料: スレッドセーフな時間を固定するテストヘルパー

golangci-lint 徹底入門

2つめのセッションは @sanposhiho による「golangci-lint 徹底入門」です。 複数のGoのlinterを一元管理しており、同時に実行することができる便利ツール golangci-lint の利用方法や搭載されている"推し"の linter 等を紹介しました。 また、golangci-lint の内部実装を学ぶということで、ライブデモの形式でコードベースで golangci-lint 内で linter を実行する様子を追っていくという場面もありました。

発表資料: golangci-lintを理解する

辞書付きGo言語仕様書の紹介

3つめのセッションは @DQNEO による「辞書付きGo言語仕様書の紹介」です。 日本語話者がGo言語仕様書原文を読むのを補助するツール Word Wise Go Spec を作成した動機や自然言語解析、辞書制作、自動ビルド等について説明しました。 中でもメンテナンス性を重視した上での辞書というアイデアの説明にとても納得感がありました。 また、OSS化していたおかげでUI実装のプルリクエストが来たという良い話もありました。

発表資料: 英和辞書付きGo言語仕様書 / Word Wise Go Spec

おわりに

今回はテスト、Linter、自然言語処理とGoの内容が濃いトピックが多かったので、普段からGoで開発している方にも、これからGoを触りたいという方にも、とても参考になったのではないでしょうか? 私は time.Now() をラップする派だったんですが、testtime 早速使ってみました。 golangci-lint の設定も見直しましたし、Word Wise Go Spec も利用させてもらってます。

そして、今回は動画の配信トラブルで大変ご迷惑おかけいたしました。 今回の反省は次回に活かしたいと思っています。

ライブで視聴いただいた方も録画を観ていただけた方も本当にありがとうございました!

それでは次回の開催もお楽しみに!