KCS Carrot logoKCS キャロットBlog

RubyKaigi2023 セッションレポート@オンライン参加

書いた人: @kcscarrot-ueno

こんにちは!! H2開発グループのuenoです。

2023年5月11日..13日に長野県松本市のまつもと市民芸術館で「RubyKaigi2023」が開催されました。
今回は、そのカンファレンスにオンラインで参加した感想や気になったセッション等について書いていきます。

初めての「RubyKaigi」参加

私は今回が初めてのRubyKaigi参加でした。
そもそも今までエンジニア関連のイベントに参加したことがなく……。
ここで改めてRubyKaigiについて整理しながら振り返っていきたいと思います。

RubyKaigi とは

RubyKaigiはプログラミング言語「Ruby」に関する国際カンファレンスです。
毎年日本の各地で開催されており、今年で17回目を迎えました。

Rubyの生みの親であるまつもとゆきひろ氏をはじめ、開発に携わるエンジニアが多数講演するため、
Rubyについて最新の情報を得ることができます。

率直な感想

率直に書くと「難しかった」というのが一番の感想です。
オンライン参加だったため、セッションの印象がそのまま感想になっています。

しかし、それは「全く理解できない」難しさではなく「上手く落とし込むことができない」という難しさでした。
これまでに自分が触れてきたRuby、それより先の領域、考え方に、数歩遅れて理解し、ついていく。
登壇する方の大半がRubyコミッターであり、発展的な内容が語られる中、
己の至らない点を再認識すると同時に、Ruby、ひいてはプログラミングというものの広さ・深さを思い知りました。

ほかには、会場の熱量や発表者の緊張感が映像からでも伝わってきて、
私の想像以上に、Rubyが愛され、界隈が盛り上がっていることが分かりました。

実際にセッションを聞いてみて

Rubyで開発していれば一度は扱ったことのある機能についてのセッションが多かったと思いますが、
そのどれもが新しい知識や気づきを与えてくれました。

数ある中でも、特に気になったものをレポートさせていただきます。

Fix SQL N+1 queries with RuboCop

ISUCONでN+1クエリを検出・オートコレクトするために作成されたRubocopの自作ツール
rubocop-isucon」についての発表でした。

お恥ずかしながら、今回のRubyKaigiで初めてISUCONという大会のことを知りました。
「ISUCON」は「Iikanjini Speed Up Contest」の略であり、お題となるWebシステムの高速化を図るチューニングバトルだそう。
LINE株式会社が運営をしていて、優勝賞金が……100万円!?
予選の参加申し込み枠もすぐに埋まってしまうということで、想像を超えて規模が大きく、人気な大会でした。

そんなISUCONに特化して作られたgemであるため、残念ながら通常の業務で使用するのは厳しそう……。
しかし、セッションで話されたその制作過程は大変興味をひくものでした。

まずはN+1クエリの検出、こちらは既存のgemのコードを参考にして簡単に実装できたようです。

次にオートコレクトですが、難しかったものの、10%ほどは自動的に修正できるようになったとのことでした。
手順は以下の通り(スライド参照)。

  1. SQL 文字列をパースし SQL AST を取得する
  2. SQL AST をRubocopで使えるようにする(ASTの異世界転生)
  3. 機械的に修正可能なN+1クエリパターンを検索する
  4. 誤検出を防ぐ

N+1クエリについては、検出し警告をだすことが精一杯で、
オートコレクトのような難解で責任の大きい機能を作ることは不可能に近いと考えていました。

けれど、このセッションを聞いてその考えも改めることとなりました。
私の中にはなかった世界を見せていただいた、有り難い時間でした。

おわりに

講演された、いわゆるRubyのプロと称しても過言ではない方々の視点がとても新鮮で、
難しくはありましたがそれに触れることができて良かったです。

また、現地参加への興味もわきました。
今回はオンライン参加だったため、セッション映像と現地レポートからしか得たり感じたりすることができませんでした。

会場では、関連したイベントの開催やスタンプラリーを通じたスポンサーブース巡りなど、
体験することで分かるRubyの様々があるかと思います。

RubyKaigi2024」は沖縄で行われるとのこと。
好きこそものの上手なれ、百聞は一見に如かず……?? 自分から一歩踏み出してみてもいいのかも??