🚀

現地速報! RubyKaigi 2025 Day2

に公開

はじめに

ブルーモ証券エンジニアの才記です。
普段は Ruby on Rails でブルーモのバックエンド開発を主にやっています。
昨日に引き続き、RubyKaigi 2025 の Day2 の速報記事をお届けします!

昨日の記事もよかったらご覧ください!

https://zenn.dev/shumpei_s/articles/64536e23315782

ブルーモと RubyKaigi(再掲)

昨日も書きましたが、ブルーモ証券は今回の RubyKaigi 2025 で Silver Sponser をしています!

https://x.com/Bloomo_product/status/1911722256302309443

また、弊社からは CTO 小林と私の2名が参加していますので、
会場で見つけた際はお気軽にお声がけください!

セッション紹介 Day2

さて、というわけで今日もセッションハイライトの方を紹介していきたいと思います。
昨日に引き続き、私の独断と偏見で、気になったり面白かったりしたセッションを紹介していきますのでご了承ください。

Performance Bugs and Low-level Ruby Observability APIs

2日目も Keynote は外せない, @KnuX さんで Performance Bugs and Low-level Ruby Observability APIs。Datadog の中の人で、Ruby のプロファイラ周りの開発を行っているとのこと。

発表内容としてはまさに Datadog とかで見れるような Ruby コードのプロファイリングに関してのお話しで、CRuby VM 内の低レベル API にはどういうものがあるのか、それらを活用するとどういうデータが取れるのか、などの話をされていました。

ちょうど直近パフォーマンス改善系のタスクに取り組んでいたこともあり、Cや言語の細かい部分の話の理解は怪しいものの、どういう機能があってどのようなプロファイリングが出来るのかのイメージが出来たのはとても面白かったです。

やろうと思えば自分で低レベルAPIを駆使していろいろなプロファイリングも出来そう…とは思いましたが、現状あんまりちゃんとした計測基盤が整っていないので、まずはそこからちゃんとしていななければ…

Benchmark and profile every single change

続いて @osyoyu さんの Benchmark and profile every single change

ちょうど自分がパフォーマンス改善系のタスクを色々とやっていたタイミングというのもあり、
ベンチマークやプロファイルの知見に対する知見が欲しく聴講。「気づいたらパフォーマンスが劣化していた」というのに気付きたい、という課題感もありました。

内容としては sinatra の100倍早い xinatra の開発を題材とした、パフォーマンスベンチマーク関連の知見共有、という感じでした。

1PR作るごとにパフォーマンスベンチを回す、という話から始まり、「1タイプごとに回してもいいんですよ」という過激な(?)ワードが飛び出したりと面白い発表でした。

面白いのは勿論なのですが、「ベンチマークを編集のたびに回すのが面倒なのでそれを簡略化するためのツールを作った」、とか、「ベンチマークガチャを回すのではなく仮説検証をしっかりやろう」とか、すぐに活かせそうな知見も詰まった発表でよかったです。

ちなみに、実際のパフォーマンスチューニング内容はnsオーダーの改善をするレベルの積み重ねが多かった印象でした。あと Hono は早い。

ZJIT: Building a Next Generation Ruby JIT

(写真撮影し損ねてました…)

お次は @maximecb さんの ZJIT: Building a Next Generation Ruby JIT

昨今、すっかり YJIT が定番、標準化したところがあります。 Ruby3x3 というフレーズが懐かしい。
とはいえ決して早い言語ではない Ruby。更なる速度 UP として、次世代 Ruby JIT に関する発表が行われました。YJIT の次で ZJIT, かっこいいですね。読みは ZEE-JIT だそうです。ぜっとじっとではない。

発表内容としてはまず YJIT の歴史について一通りおさらいをし、その後次世代 JIT としての ZJIT の概要説明、および今の状況説明、という感じでした。

YJIT ですら割と最近のもので、 Ruby を革新的に早くした…と思っていたのですが、
ZJIT は曰く「ゲームチェンジャーになる」とのこと。激アツ。
でも発表内容を聞く限りでは教科書的、保守的とでも言うのでしょうか、めっちゃ攻めたことをする訳ではなく、堅実にやっていく、という印象を受けました。

まだ始まったばかりのプロジェクトではありつつ、つい最近 @k0kubun さんがフィボナッチ数の計算を行うようなマイクロベンチマークが動くような ZJIT 実装を出した、とのこと。この時点ですでに YJIT よりも早く動いているらしいです。

今後(結構近いうちに) --zjit オプションで試せるようになるらしいです。ただもちろんまだ全然 Production Ready ではないので、興味がある人がちょっと試してみるぐらいのものではあります。

まだまだこれから始まっていくプロジェクトではありつつ、 Ruby がさらに早くなる可能性は高そうなので、継続してウォッチしていきたいところです。

RuboCop: Modularity and AST Insights

@koic さんの Rubocop 関連発表は毎年恒例みたいな感じがあるような気がしています。 RuboCop: Modularity and AST Insights です。
Ruby を使っている方で Rubocop を知らない、使っていない人はほとんど居ないのではないでしょうか?

以前自作 Cop を作ったことがあるのですが、もともとの Rubocop はプラグイン的に機能拡張ができているというイメージを持っていましたが、
どうも話を聞いた限りではモンキーパッチ的に、コピペコードでなんとかしていた部分が多く、運用上のつらみがだいぶ大きい…という感じのようでした。
Rubocop 10年以上の歴史の中で初めての(ちゃんとした?)プラグインシステムの導入…らしいです。

また、プラグイン周りとは別に Parser 周りでの変更の影響の話が出ていました。確かに Parser が変わってしまうとモロに影響受けますね…

Parser 変更に伴ってそもそも AST でいいんだっけ、 CST の方がいいんじゃないか、 Prism の出す AST でいいのでは、みたいな悩みどころが発生しているので、みんなでこの辺りをどうするかは考えていきたいね、というお話でした。

ちなみに今後の Ruby Version と Rubocop の使う Parser 周りの関係表は以下のようになるそうです。参考まで。

イベントの様子 Day2

RubyKaigi 恒例 @rubyists#map {}。今年も日本各地、世界各国から大勢の人が集っています。

HackSpace も賑わっていました。キャンプっぽい感じなのいいですよね。
私もちょっと使いたかったのですがまぁまぁ混んでて入り込む勇気が出ませんでした…

実はお昼にキッチンカーが会場前に数台来ていたりします。長蛇の列。

会場で本屋さんがオープンしているのですが、「このコンピュータ書がすごい」という会があったみたいです。賑わってる。

Day2 まとめ

以上、今日も RubyKaigi Day2 の様子をお伝えしました。
今日も気になる発表が多く、また普段使っているツールの話から次世代 JIT の話、はたまた GrooveBox の話まで、テーマも幅広く、濃い1日でした。

また Day2 は各社スポンサードのイベントも多い日になっています。
かくいう私もこの後 Timee さんの DrinkUp に参加する予定です。
こうしたイベントや交流の多さも RubyKaigi の良い、楽しいところです。

明日 Day3 は速報記事…と言うよりは RubyKaigi 2025 全体のまとめ記事になる予定です。
こちらも引き続き私が執筆予定ですので、お楽しみに!

ブルーモは Ruby エンジニアを積極採用中です

昨日も書きましたが、ブルーモでは Ruby エンジニアを積極採用中です。

少しでも興味がある方は私(やCTO 小林)に各種SNS経由でお声がけ頂ければ、
カジュアル面談でも、もう少しざっくばらんに食事しながらお話などもできますので、お気軽にどうぞ!

https://x.com/hanoniku_chan

もちろん、以下のページからカジュアル面談を申し込んで頂いても大丈夫です!

https://careers.bloomo.co.jp/

また、Ruby 以外でも、興味とご経験に応じて、エンジニア、デザイナー、PdM、事業開発など多岐にわたるポジションの仕事をお任せします。
会社やポジションについて、もっと知りたい方も上記ページをご覧いただければと思います。

ブルーモ証券 テックブログ

Discussion