最近、イベントにいろいろと参加しながらブログを書けないままでいて、こういうのは瞬発力が大事だと痛感しているので、あまり整理しないままで一旦今の気持ちを書いてみる。
(...と思っていたが、体調を崩して出すのが遅くなってしまった。とはいえ早めにざっと書いておいたおかげで、書きやすかったので良かった。)
朝の挨拶
うなすけさんの「おはようございます!」が元気がよくて良かった。
たのしいカンファレンスが始まる気持ちになった。

スポンサーLT
スポンサーLTでakinaさんがLTされていたのが記憶に残っている。ハッキリした声で、すごいカッコいい感じのLTだった。

各社さんの具体的な取り組みをギュッとまとめて聴けてありがたかった。参考にしたい。
オープニングキーノート
palkanさんのオープニングキーノート、最高だった!
事前にAsakusa.rbのドリンクアップでお話ししたのもあって、どんな内容になるのかすごく楽しみにしていた。スライドがすごいカッコよくて、英語も聞き取りやすく、翻訳もセンスのいいカッコいい翻訳になっていて分かりやすくてありがたかった。


Rails Wayは哲学だというのはすごく腑に落ちたし、Rails Way に乗って設計するには実際にどうすればいいのか?というところをコードを見せていただきながら教えてもらったのでイメージしやすかった。
「Railsを他のものと混ぜ合わせるのではなく、拡張しよう」、とか「カスタムアプリケーション開発者の考え方ではなく、フレームワーク作者の考え方を持つ」のところが一番印象に残っている。
Railsをよりよく理解して、その設計思想や設計パターンに合わせて開発、拡張していけばアプリケーションを健全に成長させていけるということだと理解した。まずはRails Wayをしっかり理解するところからだと感じたので、Railsアプリ開発の導きの星として、palkanさんの書いた "Layered Design for Ruby on Rails Applications" を読みたい。
ところどころ出てきたお子さんはpalkanさんのお子さんだったのかな?

導きの星のところは "the Stars Be with You" じゃん!って一人興奮していたし、"practice time" のところは "exercises" じゃん!ってなってた。
あと火星人開発者ってカッコいいなって思った。
トーク
全部は書ききれないので、聴いて印象に残っているものを。
本多さん


RailsのPull Requestをレビューしている時に考えていることについて教えてもらった。日頃色んなことを考えながら心を砕いて対応してくださってるんだなと感じて感謝の気持ちでいっぱいになった。「こんなことを言うと面倒だと思われるかもしれないけど」という感じで気を遣ってくださっていたけれど、Railsを作る人も使う人も(そういう分け方自体が微妙かもしれないし)皆が幸せになるためのお話だったので、説明してもらえてありがたかった。
もし何かしらIssueを上げたりが必要になった時は、このお話を思い出して参考にしたい。実際のお仕事でのIssueやPRへの向き合い方にも通じる内容だったので、今からでも参考にしたい。まずは、後から変更の判断のためにgit blameされた時に困らないようなコミットメッセージを書くようにしたい。英語もできるようになりたいので、言及されてた「Grammer in Use(アメリカ英語)」を見てみたい。
Issueのタイトルについて、貴重な文字数に[Bug]とかつけないで、みたいなお話があって、俳句みたいだな〜って思ったりしていた。
炬燵ちゃん
エモリハウス住人仲間、こたつハウス家主、あんずさんファンブックつながり、本作りの先輩という感じで仲良くしてもらっているのもあり、推し活にからむお話しというのもあり、大変楽しみにしていた。
登場シーンからして最高で、お話が終始面白くて最高だった!途中、涙が出てくるくらいだった。でもそれは面白いの方よりは感動で、だと思う。推しへの愛情もそうなんだけど、Railsの良さを活かして作っていたり、人の巻き込み方とか思い切りのよい決断力とか、いつもかっこいいな〜と思っているところが最大限に発揮されていてすごかった。アーカイブ公開されたら見直したいトーク。最高だった!!!
osyoyuさん
Day2の1つ目のトークは本当にギリギリまでどちらにしようか悩んでいた。お仕事で最近パフォーマンスのところで悩まされることがあり、osyoyuさんのお話を聞きたくて選んだ。
Pumaスレッド数のデフォルト値が変更されたことにも言及されていて、ちょうどスレッド数ってどう設定すればいいの?状態だったので、ありがたかった。仮説検証として計測してやっていくところが参考になりそうだったので資料を参考に計測をやってみたい。紹介されていたRailsガイドの記事も読みたい。
途中、Rubyのパフォーマンス面での課題はありつつも「それでもRubyと生きていきたい」と仰っていて、めっちゃいい... ってなってたし、これまでも感じていたけれど osyoyuさんの腕力というか勢いがあるのを凄く感じて、RubyやRailsには未来があるなぁと勝手に嬉しい気持ちになっていた。(ほんと勝手な感想ですみません。)
私はまずはパフォーマンス周りのことをもっと理解できるようにやっていきたい。
大場さん
実はこの回もどちらを選ぶかギリギリまで悩んでいた。Solid Queueはお仕事で使えそうで気になっているので、アーカイブ公開されたら是非見たい。
Hotwireはまだお仕事でも趣味でも触ったことがなく、でも「The One Person Framework」の構成要素として気になっていて、また、大場さんの設計思想のお話はいつも気づきや学びが多く、えにしテック15周年記念カンファレンスの思い出や温度感がまだ残っているのもあり、ライブで聴かせてもらいたかった。
今回のKaigi on Rails 全体として受け取ったものとして、つくり始める前にちゃんと考える、みたいなところがあって、大場さんのお話もまず全体設計をちゃんとするのが大事ということだったので、ちゃんとやろうと思った。
Stimulusのところで言えば、汎用的なものは皆さんのノウハウを共有していけるとより作りやすくなっていくのかなというようなことをぼんやり考えたりした。
受験支援アプリが凄く気になって、会の最後にお声がけしてお話しできて嬉しかった。来年の中学受験が大変そうなので、、今からちゃんと考えて準備していきたい。(こちらも全体設計が大事そう!)

asonas さん
こちらも、えにしテック15周年記念カンファレンスの記憶が残っていて、どんな内容かとても気になっていた。ら、本当にえにしテックカンファレンスと繋がっていて、ワクワクしながらお聴きしていた。
「居住可能性」のところは角谷さんの話をお聴きしていたはずだけどさらっと流してしまっていたようで新しい気づきだった。「心地よくかつ自信を持って変更を加えられるもの」っていう表現がとても良くて、そういうところに住みたいなと思った。One Person Frameworkだと居住可能性が高いというのは納得だった。
認知負荷のところはちょっと難しかったけれど、チームとして居住可能性を高めるために、議論することでチームとしての語彙を増やすという表現がいいなと思った。やってみたい。
One Person Frameworkは、ぼっちじゃなくてもチームでもやりやすいんじゃないかなと漠然と考えていたことを実践できる形として説明してもらった感じでとても良かった。
moro さん
「ユーザーとは何か?」から始まって、普段あまり意識せずに当たり前に使ってしまっていることに気づかせてもらった。「カラフルな名前」という表現がとても良かった。
初めにユーザーテーブルにはidだけあればいいと聞いた時は「本当に?」と思ったけれど、moroさんがそういうならそうなのかな、と思ったし、実際にコードやテーブルを例示してもらいながら説明をお聞きするにつれて、良さそうかも?となった。何より、現実世界を正しくモデルとして表現できているか?を考えられていて、そういったところにしっかり向き合っている感じが良かった。最後のスライドのコードの書き味がとてもカッコよくて、「はー、かっこいいな」ってなった。

スライドの下に角谷さんのと同じやつがあったり(昨年はなかったよね?)、「人間関係のエクササイズ」というワードがあったりで角谷さんリスペクトを感じたりしてた。
(自分の分身にしゃべらせるやつ、もしかして角谷トークが起源?要確認。)
クロージングキーノート
とても楽しみにしていた島田さんのお話。やはり最高だった!


えにしテック15周年記念カンファレンスで直接島田さんからお聞きした話をより詳しくお聞きできて、しかもRubyistの皆さんと一緒にお聞きできて、すごく嬉しかった。新しい人向けにってお話ししてくださったのも嬉しかった。
島田さんの経験から、ソフトウェアを設計する際に大事だと考えていることについて、①全体が機能するように設計することと②変化に向けて設計することと教えてもらった。
①全体が機能するように設計する
島田さんの"視点の1つ"であるところの「ソフトウェアアーキテクチャ」は、システム全体をうまく構成するために、それをもっと上手になりたいからこその関心ごとなんだなと改めて理解できた。
システムを単純化して見てしまいがちのところは身に覚えがありまくりだし、「データベースもただの円柱じゃない」のところが面白かった。ただの円柱じゃないことは分かっているはずなんだけど、でもそう表現してしまうと理解もそこで止まってしまうというか、ちゃんと正確に理解しようとして観察することが大事なんだと気づかせてもらった。
「設計のパターンを知る」についても、私は今これが不足しているから、目の前の課題をどう解けるかの選択肢がそもそも出てこなくて辛い、みたいなところもあるんだなと。それと同時に、現実の問題を何とかして解こうとしていく中での経験によってシステムへの解像度が上がることもあるなと。
これらをもっと上手くやれるようになるには、それぞれのシステムコンポーネントについて正確に理解したり、設計のパターンを知る必要があって、これまで漠然と「システムが動くしくみの基礎的なところをしっかり理解したい」と感じていたことと繋がって、やっぱりたくさん学ぶ必要があるな...と、改めてがんばっていかないとなと背中を押してもらった気持ち。そのために必要な書籍も色々と教えていただいているので、やっていきたい。
②変化に向けて設計する
システムの前提が分かりきっていない中でどう設計するのか?というお話で、書籍「Tidy First?」にも出てくるオプション(オプション取引の文脈で、将来的な選択肢を買う権利)という概念を元に説明していただいた。

選択肢を広げようとするのではなく、「選択肢を狭めない」ために、標準的な機能や設計でシンプルに作るというお話で、やっぱり "Rails Way" でいけばいいんだな〜と他のトークとも重なりを感じつつ聴いていた。
最初シンプルに作れたとしても「シンプルさを維持し続けるのが難しい」ということで、そこで "よりどころ" になってくるのがアレクザンダーさんの言葉。
修復とは「元の状態に戻す」のではなく、「変わった後の全体と再度調和させる」こと。静的で閉鎖的なものではなく、動的で開放的なもの。修復とは変化に適応し続けること。アーティストの仕事じゃん。めっちゃカッコいい...

修復しつづけているお手本としてRailsを挙げてらして、これまでのトークと相まって泣きそうになった。
修復が必要な箇所に気づくには "Process Feel" というものがあって、何かマズいなという兆候を(そのシステムに熟達した人であれば?)感じることができるらしい。Railsであれば、システムの複雑性を減らして、システム全体への感知能力を上げることができるということ、すごい!
Railsなら安心して自分達の仕事(設計や修復を続けること)に集中できるということが分かったので、学ぶべきことは多いけれども、先輩たちがそうしてきたように、それ自体も楽しんでやっていこう!と思えた。最高のキーノートだった。感謝!!!

ワークショップ
Day1、Day2のお昼時間に開催された「Rackを理解するための技術ハンズオンワークショップ」に参加。
hogelogさんに解説してもらいながら、資料を元に実際にRackアプリケーションやRackミドルウェア、Rackサーバーを作るのを動かしながら体験することができた。まだ理解が追いついてない部分があるけれど、またの機会に改めてRackについて理解しながらいろいろと動かしてみたい。
しおいさんが楽しそうだったのがとても良かった。
わいわい部屋とコーヒー
今回、わいわい部屋がとても良かった。皆さんと交流することができたし、何よりogijunさんの淹れてくれたおいしいコーヒーを飲めるのが最高すぎた。
おいしいコーヒーがあるから皆さんが集まってきて、交流が生まれている感じだった。
1日目、2日目とわいわい部屋でいろいろお話ししたり、万年筆について学んだり、ガラスペンを皆さんと試し書きさせてもらったり、ima1zumiさんにirbのことを教えてもらったり、あんずさんにファンブックのことを相談させてもらったり、いい時間を過ごさせてもらった〜。感謝。
初めてカンファレンスに参加した時に、皆さんがPCを開いてワイワイやっているのをカッコいいな、楽しそうだなって横目で見てたのが、今回(おそらく初めて)PCを開いてコードについてのお話ができたので、それがすごく嬉しかった。そして、コードだけじゃないお話も色々できたのも、とても嬉しかった。
本屋さん
今回は、カンファレンスに本屋さんが登場していて、すごく良かった。

「Rubyコードレシピ集」と「ソフトウェアアーキテクチャの基礎」の本が以前から気になっていたので、いい機会だから購入しようと思っていたけど、気づいたら売り切れてしまっていた。残念。
代わりに、Authors.rb の気持ちで持ってきていた本にサインをいただいたりした。1日目は「エラスティックリーダーシップ」と「n月刊ラムダノート Vol.4, No.2」、2日目は 「スタッフエンジニアの道」と「Rubyではじめる電子工作~ラジコンを作ろう~」。ちゃんと読むぞ!
懇親
Day1の懇親会では、おいしいお食事と日本酒をいただきつつ、参加者の方々とお話ししていた。カンファレンス全体を通して、活気があるというかワイワイした雰囲気があって、懇親しやすくて良かった。オーガナイザー陣セレクトの日本酒が色々あっておいしかった!
懇親会の時に RubyKaraoke があるよと森塚さんに教えてもらって、明日もあるしどうしようか迷いつつも参加した。やはりとても楽しかったので参加して良かった!特に、初めて竜堂さんとRubyKaraokeをご一緒できて、マクロス好き同士ということもありKaraoke仲間になれて嬉しかった。
Day2はMusicMixinに参加。Mixinが始まるまで少しお時間があったので、参加者の方々と夜ご飯を食べることに。RubyKaraokeでご一緒した方が多かった。餃子がとてもおいしかった!
移動中に竜堂さんからJRubyについて色々教えてもらえて有り難かった。トーク自体はお聞きできなかったけれど、JRubyの良さを教えてもらえた。
MusicMixin自体は、いつものよりちょっとこじんまりとして、大人っぽい感じだった。皆さんといい音楽を聴きながらワイワイお話しできて良かった。好きな音楽のジャンルを貼り付けるという試みが話題のキッカケにもなって良かった。
pixivさんで今度DJ入門会があるとのことで、気になって勢いで申し込みした。自分がDJできるとは思わないけど、どんな感じでやっているのかの裏側を覗いてみたい気持ち。
今後に向けて
今回はDay1はお仕事として参加したということもあり、今後のお仕事に活かせるように、今回受け取ったことを改めて咀嚼したり試してみたりを継続してやっていきたい。
Rubyが私たちを信じてくれているのと同じように、私もRubyやRailsを信じてその価値を理解して発揮できるようにしていきたいなと思った。もちろん色んな選択肢があることをちゃんと理解しておく必要はあるけれど。
お仕事でもフィヨブーでも引き続き、コードによって現実の課題を解くことをより上手くできるように、システム全体のしくみをより理解したり、自分が使える手札を増やしたりしながらやっていきたい。
Kaigi on Rails 2024、本当によいカンファレンスだった!

最高のカンファレンスをつくってくださったオーガナイザーの皆さん、登壇者、参加者の皆さんに心から感謝したいです。ありがとうございました!!!