FORCIA CUBEフォルシアの情報を多面的に発信するブログ

Shinjuku.rs#12を開催しました

2020.11.17

Shinjuku.rs Rust エンジニア

旅行プラットフォーム部の谷井です。急に寒くなりましたね、秋はどこへ行ったのでしょうか。

さて、フォルシアではShinjuku.rsというRustのLT会を隔月開催しています。
今回で12回目ということで、開催を始めてから(休止時期もありましたが)丸2年が経ったことになります。

運営方法も試行錯誤しながら小さな工夫を重ねておりますが、ありがたいことに何度も参加/LTしてくださる方も多く、こうして継続的に開催できていること、とても嬉しく運営冥利に尽きます。
今回も100名近い方にご参加いただき、Twitterやコメント欄でも大変盛り上がる会となりました。

pic_201117_01.png

本記事ではそのイベントの内容を簡単に紹介します。

前回、前々回のイベントの様子はこちらをご覧ください。

LTの様子

今回LTに登壇いただいたスピーカーの方とテーマは以下の通りです。

スピーカーLTテーマ
LT1 matsu7874(フォルシア松本) Rustを独習する方法について(本を買えという話ではないです)
LT2 すてにゃんさん ISUCON (Iikanjini Speed Up Contest) に Rust で挑戦した話
LT3 likr さん Yewでのoff-the-main-thread
LT4 κeen さん Rustで作るインメモリキャッシュ
LT5 monochrome さん Rustで作るガベージコレクタ

(各LTの発表資料はタイトルにリンクを貼っています。見やすく充実した資料を作っていただいているので、ぜひご覧ください!)

LT1 | Rustを独習する方法について | matsu7874(フォルシア)

pic_201117_02.png

『実践Rustプログラミング入門』の著者の一人でもある弊社松本が登壇し、RustのLinterツールClippyの紹介を行いました。
Rustを初めて学ぶ際に詰まりやすいポイントとして「言語特有の概念」「文法の使い方」「Rustらしい書き方」を挙げ、3つめの壁を乗り越えるためにはぜひClippyを使おう、という内容です。
注意点として、Perfタグのルールについては必ずしも速くなるとは限らないため、実際の使用に際してはきちんと計測してみることが大事ということでした。

LT2 | ISUCON (Iikanjini Speed Up Contest) に Rust で挑戦した話 | すてにゃんさん

pic_201117_03.png

Webアプリケーションの高速化コンテストであるISUCONにRustを使って参加した際の経験を語ってくださいました。
コンテストに向けての準備や役割分担、当日実際に取り組んだ改善策の紹介など、参加したことのない方でもイメージしやすい発表でした。
Rustの参考実装がなかった場合に向けて、Webアプリに必要なライブラリも一通り勉強したとのことで、新しい言語の勉強にコンテストを活用するのもとても楽しそうだと感じました。

LT3 | Yewでのoff-the-main-thread | likrさん

pic_201117_04.png

状態管理などの重い処理をwasmのworkerに任せることでメインスレッドの負荷を減らす方法について紹介いただきました。
ブラウザの挙動やスレッドの負荷状況といった前提知識を踏まえながら発表いただいたので、非常に分かりやすい発表でした。

LT4 | Rustで作るインメモリキャッシュ | κeenさん

pic_201117_05.png

続いてκeenさんより、HashMapを改造してRustのインメモリキャッシュchechireを自作した話をしていただきました。
HashMapにはキャッシュに不要な機能も含まれるため、crates.ioに公開されているhashbrownのモジュールを活用したそうです。
キャッシュポリシーとして採用したLRUの詳解をはじめ、資料の図もとても見やすく勉強になりました。

LT5 | Rustで作るガベージコレクタ | monochromeさん

pic_201117_06.png

最後は前回のLTでも発表いただいたmonochromeさん。
今回はRuby処理系をRustで実装するにあたって、GCもRustで作ってしまおうというパワフルな内容でした。
実装にあたってバグりがちな点の説明では、「いかにもバグりそう...」と共感のコメントが多く挙がっていました。

おわりに

Rust初学者向けのLinter紹介、高速化コンテストへの参戦記、WASMを使ったスレッド負荷分散、自作インメモリキャッシュ、Ruby処理系をRustで作るためのGC実装、といつにもまして幅広い領域のLTを聞くことができました。

やはりふだん自分が関わらない領域の話は知らないことばかりでおもしろいですね。
また、今回はWebブラウザの処理の仕組みやキャッシュのポリシーなど、前提となる知識を丁寧に解説してくださる方が多く、Rust以外の部分もとても勉強になりました。

懇親会では「Rustは環境にも優しい言語」「著者だらけのLT」などパワーワードもたくさん飛び出し、和気あいあいと交流を深めることができました。

また、アンケートやTwitterでは、「幅広い技術領域の発表ばかりでとても楽しめました」「Rustはまだまだやっている人が少ないのでLTを聞けてありがたかった」「自分が全く触らない分野なので勉強になった」「毎回いろんな方の"やってみた"を聞くと自分もやりたくなります」「今日のLT会を見てRustをやってみようと思いました」などなど、嬉しい声をたくさんいただけました。

あらためて、LT登壇いただいたみなさま、ご参加いただいたみなさま、ありがとうございました!

次回のShinjuku.rs #13は12月22日(火)に開催予定です

以下のページから参加申し込みできます。

Shinjuku.rs #13 connpassイベントページ

Rustを商用利用した話、Rustでこんなものを開発したぜ、Rustの面白い仕様を紹介したい、Rustにcontributeしたなど、Rustに関連する内容ならなんでもWelcomeです。皆様からのLTをお待ちしています。

この記事を書いた人

谷井 嶺太

2019年新卒入社。旅行プラットフォーム部エンジニア。
最近はドラム式洗濯機の機種選びで迷っています。