RubyKaigiの情報をウォッチしてる皆様、こんにちは、RubyKaigi 2024でHydration Sponsorしているスマートバンクのmitaniです!
ついにRubyKaigi 2024が開幕しました 👏 👏 👏 @tompng さんのkeynote 「Writing Weird Code」から始まり、大盛り上がりな1日目でしたね!!
スマートバンクはHydration Sponsorとして、RubyKaigiの参加者達に美味しい冷えた飲み物を提供しております!(明日以降もやります!!) そして初日は、弊社から ohbarye と Daisuke Aritomo (osyoyu) が登壇しました!
快晴に恵まれて熱気あふれるRubyKaigi初日の様子をスマートバンク目線でお届けします!!
Hydration Sponsor
Hydration Sponsorは会場でドリンクを提供するスポンサーです!暑い沖縄を乗り切れるように4種類のドリンクを準備しています!まだドリンクをもらっていない方はぜひお立ち寄りください!一度飲んだ方も何度でもお越しください!(❺番目のSecret Drinkもあるので、チャレンジしたい方は是非!)
ブースに立ち寄ってくださった方々には、B/43のシステムアーキテクチャについての説明もさせていただきました。
2日目以降も同じ場所で配っていますので、ぜひお立ち寄りください!おかわりも歓迎です!
弊社から2名が登壇しました!
Unlocking Potential of Property Based Testing with Ractor by ohbarye
Unlocking Potential of Property Based Testing with Ractor
13:30から #rubykaigiB で、ohbaryeさんの発表がありました。Property Based Testing(PBT)という大量で多様なテストデータを自動生成し、ランダムにテストを行うことでこれまで発見できなかった予期せぬ不具合を検知する方法を紹介し、PBTをRactorで動かしてみることによる今後の可能性について深掘りをした登壇でした。
PBTは大量のデータを作ってテストを行うため処理時間が課題となりやすく、並列実行できるRactorと親和性が高く今後のRactor利用のユースケースになりうるのでは?という着眼点からpbt gem で取り組んでみたそうです。gemの中では並列処理の方法の一つとしてRactorがサポートされていたり、テストが失敗した際にバグが再現する最小ケースを特定する機能も実装されており、かなり便利なgemに仕上がっています。
後半では、Ractorで動かす場合の実装上の課題としてrspecなどの既存のテストツールとの親和性がなくハックが必要なことや、CPU-boundな処理以外では並列で実行せずシーケンシャルにテストをした方が速度が早かったなどの指摘がありました。
PBTのテストを書いている企業はまだ少ないかと思いますが、今後品質改善へのアプローチへの手法として検討してみてはいかがでしょうか?
The depths of profiling Ruby by Daisuke Aritomo (osyoyu)
13:30から #rubykaigiB で、スパムおにぎりが大好きなosyoyuさんの発表がありました。osyoyuさんが作られたRubyのプロファイラー pf2 gem について実装方法や実装上の工夫点について詳しく紹介されました。Pf2はC Extensionの中だったりRuby実行時に隠されている内部実装まで細かく追えることが、他のプロファイラにはない強みとのことでした。
実装方法の話の中で、①実行情報を取得する、②それら情報を集めて集計し情報をまとめる、③ビジュアライズツールで可視化する、というプロファイラを作るために必要なステップごとに実装方法と工夫点を紹介されていました。プロファイラが実行情報を定期的に取得するスケジューリングの話では、プロファイラ実行にかかるオーバーヘッドの時間を全体の5%未満に抑える目標のもと、スケジューリングの間隔を19msに設定するなど実装者ならではの悩みや意思決定について紹介されており、非常に参考になりました。
また、現状ではビジュアライズの部分は既存のツールにお任せしているとのことですが、トーク後に本人に聞いたところ不満点や改善したい欲求はあるとのことなので、いつかビジュアライズ部分の改善にも着手されるかもしれません。
将来的な話として、Ruby本体にプロファイラ関連の機能を入れたいとも語られていたので、今後が楽しみですね!
2日目もよろしくお願いします!
皆さんのRubyKaigi 1日目はいかがだったでしょうか?2日目以降もスマートバンクはHydration Sponsorとして美味しいドリンクを配ってますので、喉が渇いたらぜひ遊びにきてください!
また、2日目のLightning Talksには弊社Miyuki Koshiba(@chobishiba)が「Enjoy Creative Coding with Ruby」というLTをします!ぜひお楽しみに!!