こんにちは!
リンクアンドモチベーションのバックエンドエンジニアをしている葛葉(くずば)です。
昨日に続いて、Ruby Kaigi 2025の2日目の感想をお届けします!
1日目のレポートについても合わせてご覧ください!
link-and-motivation.hatenablog.com
2日目のタイムテーブル
Performance Bugs and Low-level Ruby Observability APIs
Performance Bugs and Low-level Ruby Observability APIs - RubyKaigi 2025
2025年4月8日にリリースされてるlowlevel-toolkitというgemを使って、Ruby内部の仕組みに踏み込みつつ、パフォーマンスの問題に対処する方法について話されていました。
パフォーマンスやメモリの問題はどんなプロダクトでも起こる話だと思うので、lowlevel-toolkit含め、新しいツールのキャッチアップをしていこうと思いました!
Dissecting and Reconstructing Ruby Syntactic Structures
Dissecting and Reconstructing Ruby Syntactic Structures - RubyKaigi 2025
なぜRubyの複雑な構文(grammar)が書けるのかをC言語のパーサーparse.yに書かれているコードを見ながら解説されていました。
柔軟に書けるRubyがなぜ柔軟にかけるのかが、今日の発表に詰まっていた気がしてワクワクしました。
そして、人を引きつけるような話し方をされていたので、僕もそんなふうに話せるようになりたいなと思いました!
Writing Ruby Scripts with TypeProf
Writing Ruby Scripts with TypeProf - RubyKaigi 2025
明示的な型注釈をほとんど書かなくても動作する型チェッカー「TypeProf」についての話でした。
最初話を聞いて、steepとかsorbetとか他の型定義を作ってる人たちと、真正面からぶつかってしまう話なんじゃないかと思ってしまいましたが、むしろsteepとかsorbetを作ってる人にレビューしてもらって今回の発表資料を作ったとおっしゃっていたので、助け合いながらRubyの課題解決をしていることに驚きました。
TypeProf使ってみます💪
RuboCop: Modularity and AST Insights
RuboCop: Modularity and AST Insights - RubyKaigi 2025
10年の歴史があるRuboCopを、今後も使えるようにメンテナンスしたり、rubyのバーションアップに合わせる苦悩について話されてしました。
ただ、僕の理解不足もあり、内容を理解するのは結構むずしかった...
僕たちの会社でも日常的にRubocopを使っているので、もっと興味を持って関わるきっかけにしようと思います!
Speeding up Class#new
Speeding up Class#new - RubyKaigi 2025
Class#newした時に、RubyからCに変換した後に再度Rubyに変換しないようにすることで、高速化できるかどうかを検証したという話でした。
そもそもClass#newした時に、何が起こっているかを考えることがなかったのですが、コードを書く上でも何が起こっているのか?それは本当に必要な処理なのか?問いを投げられるともっと深くRubyを楽しめるのだろうなと思いました!
Lightning Talks
Day2の最後はLTで、5分×11人の発表を聞きました。
同じ5分という限られた時間の中でも取り上げるテーマやお話の角度、時間の使い方などみなさんの個性が溢れていて、とても刺激的な時間でした!
おわりに
2日目終了しました!
こんなかっこいいエンジニアになりたい..! 改めてそんなことを思った2日目でした。
Day3の記事も頑張って書きます!ぜひご覧ください!!