はじめまして。FRESH!でサーバーサイドエンジニアをしております、寺田です。
サイバーエージェントのGo勉強会 CA.go #2が2017年9月6日(水)に開催されました。
CA.goは、サイバーエージェントのAbemaTVやFRESH!、マッチングサービスの新規開発などを担当しているGoエンジニアがGoの開発知見を発表し、エンジニア同士のコミュケーションの場を提供するイベントです。今回は第2回目の開催です。
私も登壇者として参加しましたので、当日の様子をお届けいたします。
資料まとめ
golang.org/x/sync による効率的な非同期処理 / 堀 良太
一人目はCA.go #1でも登壇されていたFRESH!の堀 良太 (@hori_ryota) さんです。
“明日からでも導入できる”効率化ということで、golang.org/x/syncのパッケージからsyncmap, errgroup, semaphore, singleflightの4つを紹介してくださいました。
同タイミングの処理をまとめてくれるsingleflightではキャッシュ戦略として活用が見込める点など4つそれぞれの利用方法が盛り込まれている実践的な内容で、今からでも試していきたいと思える内容の発表でした。
発表の中でもありましたが、これらの機能を自作するとミスを起こしやすく可読性も悪くなりがちという点があるので、自作していた人にも非常に参考になるものだったと思います。
Update to Go 1.9 / 寺田 貴俊
二人目として私、寺田が発表させていただきました。
先日、正式にリリースされたGo1.9に対応しようとした時に得た知見とGo 1.9からの変更点で比較的簡単に導入することで、より便利になる箇所を紹介しました。
少しでもGo1.9へのアップデートへの参考になれば幸いです。
トルテリリースまでの Go Tips 16 / 中川 武憲
三人目は株式会社トルテの中川 武憲 さんです。
先日リリースしたばかりのサービスであるTorteをリリースするまでに得た知見を紹介してくださいました。
json.Marshalerでループしてしまうものやstructの埋め込みなど、注意すべき事例の紹介や、ExifをGoで扱うライブラリのベンチ結果やLoggingで行っていることなど開発を進めていく中での課題とその解決方法が分かる興味深い内容でした。
Golangにおける端末制御 リッチなターミナルUIの実現方法 / 芝田 将
最後に株式会社AbemaTV 新卒1年目の芝田 将 (@c_bata_) さんです。
自身が作成した go-prompt を開発する中で得た端末制御に関する知見のお話でした。
ターミナルの入出力や画面情報などシステムコールの話も絡むレイヤーの低い部分での話ではありましたが、紙に印字するタイプライター方式からの端末の歴史などを含まれていて、普段使っているターミナルについて興味を持つことができる面白い発表でした。この発表を機にターミナルUIの開発に興味を持った方も多いのではないでしょうか。
最後に
雨が降り出していたにもかかわらず多くの方々に足を運んでいただきました。
社内での知見やノウハウなど、今後もこのような勉強会を通してすこしでも有益な情報を発信していければと思います。
まだ具体的な日程は決まっていないですが、次回CA.go #3も開催する予定です。
ぜひとも弊社のconnpassグループをチェックしてください。
また当日の様子はFRESH!にて公開されておりますので、ぜひご覧ください。
なお、サイバーエージェントではGoエンジニアを積極的に採用しています!ご興味ある方はぜひこちらまで