Kaigi on Rails 2024に参加してきました!
ブログ書くのがかなり遅くなってしまったーーー!時間が経ちすぎてしまったのですが、思い出として残しておきたかったので書きます。
10/25(金)、10/26(土)に開催されたKaigi on Rails 2024に参加してきましたー!
去年に続き2回目の参加になります。今年の会場は有明セントラルタワーホールでした。
特に印象に残ったセッション#
本当はもっと書きたいセッションがあったのですが、時間が経ちすぎて書ききれないと思ったので今回は3つだけ...。
RAILS WAY, OR THE HIGHWAY#
アプリケーションが大きくなるとMVCだけでは足りなくなる。そこでRails Wayから離れる実装をしてしまうと、怪獣 on Railsになってしまう。
Rails Wayはそうならないための導きの星になってくれる。
MVCから拡張する際に、Rails Wayに従いつつMVCの隙間を埋めるためには『Layered Design for Ruby on Rails Applications』がガイドになるみたいです。
この本は積読しているので、次に読むRails本にしたいと思います!
Layered Design for Ruby on Rails Applications
MVCからRailsを拡張する際の考え方として、関心事を分離して各ユニットをプロセスの一部に集中させる。
抽象化レイヤーを分離するためにレイヤードアーキテクチャの原則を参照する、という説明がありましたが、自分の理解度を超えてしまったのでここは今後勉強していきたいです。
Railsの仕組みを理解してモデルを上手に育てる - モデルを見つける、モデルを分割する良いタイミング -#
サービス層を入れるのはできるだけやめる、ということを強調されていました。
自分でも以前よりサービス層について、テストがしにくかったり、似たような処理が散らばっていることを課題に感じていたのでとても参考になりました。
イベント型モデルを見つけることが重要で、名詞であるモデル名に「〜する」をつけて自然なものがイベント型モデルになる。
イベント型モデルを作成することで、複数モデルにまたがっていた処理をそのモデルに記述ができる。
PORO、フォームオブジェクトの導入についての説明もありましたが、いまいち自分の中に落とし込めていないのですが使えるようになると便利そうなので、アーカイブ動画が公開され次第もう一度セッションを観て理解を深めたいです。
WHOLENESS, REPAIRING, AND TO HAVE FUN#
島田さんのセッションの中で、一番印象的だったのが後半のオプションのお話でした。
設計初期段階で不確実性が高い中で、何にでも対応できるような構造や仕組みを作るのはむしろ選択肢を狭めている、どの方向にも進めるようシンプルに作る、という言葉が印象に残っています。
シンプルに作るというのは「標準の道具、標準の方法で、必要十分に作る」ということで、「Railsはオプションのための設計をサポートしてくれるフレームワーク」ということに納得しました。
ここで、シンプルに作るためにはRailsをマスターすることが大事という話しになり、Palkanさんの「RAILS WAY, OR THE HIGHWAY」の話とつながってきたところが面白かったです。
あと、システムが成長すると部分的にシステム全体的に合わなくなってくる箇所が出る(これがボトルネックと呼ばれる箇所?)ので、それを修復し続けることで変化に適応するという考え方が勉強になりました。修復というと、マイナスを0にする作業のようなイメージでしたが創造的なイメージを持てました。
そこで修復が必要な箇所に気づくことが重要になるのですが、「複雑なシステムを直感的に理解する」Process Feelが大事というお話になり、認知負荷の低減が大事だということを学びました。
ここで、Kaigi on Railsの多くのセッションの話しがまとめられたような感覚があり、とても感動したことを覚えています!
学んだことを自分なりにまとめました。
システムコンポーネントを詳しく知ることで問題の解像度を上げることができる。また、設計パターン(よくある問題・解決策)を知って実際の問題を丁寧に解決していく。
オプションのために、アプリケーションはシンプルにし続けることが大事。RailsはそのためのFWなのでRailsを習得することが重要になる。
機能変更・追加によりシンプルさを失わないために全体と調和していない部分を見つけて修復するという創造的な行為をしつづけることが重要。修復が重要な箇所に気づくためには、感覚に頼ることが大事。感覚を養うためにはシステムコンポーネントや設計パターン、Railsを習得し、システムをシンプルに保つことにより認知負荷がない状態にしておくことが大切。
あとは、書籍、コード、コミュニティで学び続けることも大事だというお話を聞き、自分は書籍に偏りがちだということに気づいたので、これからはOSSのコードを読む時間を増やそうと思いました!
さいごに#
Ruby/Railsを触り始めて1年以上が経ったので、今回のKaigi on Railsでは理解できる部分が増え、去年より楽しむことができました!
また、所属しているコミュニティの方々と実際に会って話したり、コミュニティ外の方とも話しとても刺激的な2日間でした。
楽しかった思い出とRails熱が上がったので終わってから1週間くらいはずっと気持ちがフワフワしていました😃
今年の会場は去年よりも大きくなっていてビビりました!来年は東京駅からすぐのところみたいで、さらに大きくなりそうですね。
運営の方々に本当に感謝しかないです。来年のKaigi on Railsもとても楽しみにしています!
改めて運営、登壇者、一緒に話してくださった方々、ありがとうございました!!!