Kaigi on Rails 2024に参加してきました。諸々あってブログを書けるようになるまでめちゃくちゃ時間がかかってしまった。マジで何もできなくなることが世の中にはある。
Kaigi on Rails 2024 と哲学
光の道、導きの星が今年のテーマだった。気がする。それはつまりRails wayと呼ばれるモノでああり、結果として生まれてくるのが概念圧縮であったりThe One Person Frameworkと呼ばれるモノであったりする。
Railsを使っていると、誰もが迷う。0 to 1は特に迷わない。1 to IPOの時に、多くの迷いが生まれてくる。その多くの迷いに立ち向かうための話が、二つの基調講演で違う角度から語られていた。ひとつは、Railsが提供してくれるレールを尊重すること。アプリケーションを拡張したいときは、Railsの流儀を身に着け、自らのコードに応用していくということ。もうひとつは、オプションを手に入れること。常にアプリケーションをシンプルに保ち、変化に追従できるようになっておくこと。これらを光の道、導きの星として解説したのが2024のキーノートであり、深く感銘を受けたポイントだった。そしてRails自身も、メジャーバージョン8を迎えており、自らRails wayの大切さと、変化と柔軟さを体現していると言える。もちろん、ユーザーとしてそれに追従するのはまあ大変なのだけど。
Rails wayという言葉と自分がどこで出会ったのかは覚えていないが、元の本を読んでいないのでおそらく誰かから聞いた話だと思う。人には人のRails way、とまでは言わないが、俺の考えた最強のRailsが世の中にはそれなりに転がっている気がする。なんなら、Railsを書いていない人でさえも俺の考える最強のRailsを持ってインターネットに殴り込みをかけている気すらする。間違った導きの星は、人を迷わせる。だからこそ、ここ数年のRailsは様々な方法で正しい光の道が見えるように誘導しているようにも思えた。Hotwireの導入や、Omakaseの概念、Onceのコード公開、他にも色々。また、今回のセッションの中でも、モデルの育て方、データマイグレーションの標準への疑問など、様々なRails wayへの問いかけがあった。光の道、導きの星は宗教っぽいアンセムでなんか怖いなぁと思いつつも、人々が集まり哲学への問いかけを続けるZENとしてカンファレンス、それがKaigi on Railsだなと実感した。まあお前ら、Rails Guide何度も読み返せってことだ。Rails8ではRails Guideも強くなってるしな。
特に心に食らったセッションの感想
当日直接聞いたセッションと、残念ながら当日聞くことができず後日スライドを見たものがある。
Identifying User Identity
今回一番心に食らったのがこのセッションで、勇気と感動をもらった。 Userテーブルには何も情報を載せず関連テーブルで表現するというスタイル、自分もうっすらとメリットを感じていて個人開発のプロダクトではずっと続けていたのだけど、本当にそのうっすらとした感覚が正しいのかどうかの確信がいまいち持てず(なんせ個人開発なので、あまり派手な問題というモノに遭遇しない)、うまく言語化ができていなかった。そんなところにこのセッションをぶちこまれたので、ああ自分が思っていたうっすらとした感覚の正体はこれだったのかと変に感極まってしまったので一番食らったセッションになった。IdentityとIdentifyされたユーザーの情報は別で成立するんだ、というのがスッと入ってきて、なんだか嬉しい気持ちになった。スライドの中には書かれていなかったけど、Identityとユーザー情報を分割するメリットとして、ペルソナやの切り替えや認証情報の切り替えの実装が楽だというのも自分がうっすらと感じていたメリットで、その考えがさらに補強されるようで励まされた様な気持ちにもなった。 また、最後のユーザーの状態をstatus列無しでリレーションで表現できる、という考え方が凄くクールで、完全に食らってしまった。最高。ベストセッション。
Data Migration on Rails
このセッションが好きな理由は、光の道、導きの星が存在していない領域の話だったから。スキーマのマイグレーションでは無く、データのマイグレーション、もっと一般化すればワンタイムのスクリプトをどのように管理するかという手段をRailsは提供していない。もちろんDHHのお気持ち的なモノはあるみたいだけど、Railsの実装としてそれが示されておらず、Rails guideでも扱われていない。つまり、光の道、導きの星がないものを我々はどう扱えばいいのか、という話だった。実際のところ、多くの話題は光の道、導きの星が無いという話なんだけど、これだけ多くの人が同じ事をやっているにも関わらず、光の道が無いというのはなかなか奇妙な気がしたので、特に気になった。リアルワールドでは同じ目的で山のような数のGemがあり、Gemだけでは無くMakefileやShellスクリプトまで多岐にわたる様々な道しるべが用いられている。黄金律の修復が待たれる。王になれ。
Railsの仕組みを理解してモデルを上手に育てる
このセッションは当日聴いておらず、後日に資料を見て「うわっ、なんて素晴らしいんだ……」と思ったやつ。Railsをやっていると必ず迷う「複雑なフォーム」という問題に対して、光の道を示すためのガイド。Railsをやる人は、みんなこのスライドを胸に刻んでやると良いと思う。フォームオブジェクトの扱い方に関して、ここまできちんとわかりやすく言語化してまとめ上げた資料ってあまり見た覚えがないので、今後のRailsに参加する人たちは必読になると思う。本当に良いスライド。
推し活の ハイトラフィックに立ち向かう Railsとアーキテクチャ
これは完全に感情の問題なんですけど、ハイトラフィックの厳しい環境で手を替え品を替え戦い抜く話、聴いててビリビリするんですよね。勇気が沸いてくる。UPDATE SKIP LOCKEDすごいね。そんなセッションでした。
推し活としてのrails new
これも当日聴いてないんですが、良いんですよスライドが。開発者としての喜びとは本当にこういうモノだな、ものづくりの楽しさってこれだな、って感じられる話本当に大好きなんですよ。自分が作ったモノが誰かに使われて喜ばれるっていう、プリミティブな感情を味わいたいんですよ!!!! 最高!!!
まとめ
Kaigi on Rails、ホンマに良いカンファレンスやなぁ……来年こそCFP通すぞ。