
こんにちは!ゼネットの中川です。
Kaigi on Railsというイベントの名前は以前から知っていましたが、「自分が参加しても内容を理解できるのかな?」という不安がありました。
そんな中、会社の支援で参加できる機会をいただいたので「せっかくなら挑戦してみよう」という気持ちで今回はオンライン参加をすることにしました。
まだKaigi on Railsに参加したことが無かったり、イベント参加に悩んでいる人の参考になればと思います。
この記事はこんな方におすすめです。
- Kaigi on Railsの存在は知っているけど、経験が浅くても楽しめるのか気になる方
- 発表内容が難しくて何もわからないまま終わってしまうのではと不安な方
結論:参加して大正解。少しでも興味があるなら一度は参加してみよう
私自身、最初は以下のような不安を抱えていました。
- 発表内容が難しくて理解できないのではないか
- 会場の雰囲気が固く、淡々としていそう
- 自分でも楽しめる内容なのか
しかし、実際に参加してみると印象は大きく変わりました。
- 登壇者が楽しそうに技術を語っていて、会場全体が活気にあふれていた
- わからない部分はその場で調べながら聞けるので、理解が深まって楽しい
- 勉強会独特の熱量があり、自然とモチベーションが上がる
登壇者の方々は面白い雑談も交えながらわかりやすく内容発表をしていたなという印象です。会場では雑談が面白く笑いが起きているシーンなど多々ありました。
また、オンライン参加ということもあり詳しくないものを調べつつ、もう一度聞きたいところを戻って聞くなどができる点などもよかったです。
今回はその中でも印象に残った発表を共有させていただきたいと思います。
印象に残った発表:そのpreloadは必要?見過ごされたpreloadが技術負債として爆発した日
資料:そのpreloadは必要?見過ごされたpreloadが技術的負債として爆発した日 – Speaker Deck
概要は、N+1対策として広く使われる preload が、仕様追加やスコープ変更の中で見直されずに残り、不要な事前読み込みがメモリを逼迫させたというものでした。
原因は、使われていない過剰な preload が成長したデータ量と相まって ActiveRecordインスタンスを雪だるま式に増やしていたことでした。
不要なネストを外すことでメモリを大きく削減できた実例が示され、「当時は正しかった最適化も、現在は負債になり得る」という教訓が強く刺さりました。
正直、preload については私自身も「入れておけば安心」と考えがちだったので、今後は意識して見直していきたいと思います。
この発表から下記のような学びがありました。
preloadは「N+1の銀の弾丸」ではない。効果と副作用はトレードオフだということ。- 効果と副作用のメリット・デメリットを考え、性能や処理速度などを許容できる範囲なのかを常に考えるようにする。
- 定期的に問題点に気付けるように、スコープ追加/設計変更後などは、
preloadの再監査の仕組みを導入することが大切だということ。
今後preloadを利用する際はPRの確認項目にpreloadが必要かの観点を入れたり、定期的にpreload棚卸し会を実施し、深いネストや未使用関連を継続削除していくなどで活かしていきたいと思います。
まとめ
今回はオンラインで初めてKaigi on Rails2025に参加してきました。
来年も機会があれば積極的に参加していこうと考えています。
今後もこのような技術イベントを通じて、自分自身の知見を広げていければと思います。
Railsに関わっている方なら、登壇者の話を聞くだけでも新しい発見があると思うので、少しでも気になっている方はぜひ一度参加してみてください。