はじめに
こんにちは、mercari.go スタッフの @otter です。
6月23日にメルカリ主催のGo勉強会 mercari.go #19 をオンライン配信にて開催しました。 この記事では、当日の各発表を簡単に紹介します。動画もアップロードされてますので、こちらもぜひご覧ください。
Goでのメール送信
1つめのセッションは @payao による「Goでのメール送信」です。
発表資料:Goでのメール送信
通知に関するマイクロサービスの開発・運用を担っている Notification Team で行われた、メールに関するマイクロサービス化についての概要と、GoでのSMTPクライアントの扱いについて紹介しました。
Goの標準ライブラリである net/smtp だけでは、マルチパート、RFC5322等の対応が難しいことそれに対して gomail を採用した点などは、メールを扱う時にとても知見になる話でした。
アクターモデルとGo
2つめのセッションは @sanposhiho による「アクターモデルとGo」です。
発表資料:Goにおけるアクターモデルの実現に 向けたライブラリの設計と実装
アクターモデルとは何か、どういったメリットがあるのかといった話から、Goにおけるアクターモデルを実現するために自ら作成したライブラリ、Molizen の紹介をしました。
具体例を上げての並行プロセス間の排他制御のロジックの説明や、他言語でアクターモデルをどうデザインしているか等、元々馴染みがない人にも分かりやすい内容となっていました。
Internals of garbage collection in Go
3つめのセッションは @aagosh による「Internals of garbage collection in Go」です。こちらは英語のセッションとなっています。
Goのガベージコレクションがどのように働き、どのようにスケジュールされるかを説明し、ガベージコレクションフレンドリーに実装する方法等について紹介しました。
普段からガベージコレクションのレイテンシを考慮し、ヒープ割り当てが行われていることを確認しながら、実装している人は多くないのではないでしょうか?ここではアプリケーションに予期せぬ遅延がある場合は、アプリケーションをプロファイルし、ガベージコレクションのレイテンシを調べ、ガベージコレクションのパラメータをチューニングする大切さも伝えてもらいました。
おわりに
今回は様々なGoを実装する場面で活用できるトピックが多く、多くの方に参考になった内容になっていたのではないでしょうか。
また、今回は初めて Remoでパブリックビューイング会場も設けてみました。参加いただけた方々いかがでしたでしょうか?
ライブで視聴いただいた方も録画を観ていただけた方も本当にありがとうございました!
それでは次回の開催もお楽しみに!