はじめに
Kaigi on Rails 2025に参加してきました!
聴講したセッションをまとめたいと思います。
聴講したセッションとそれに対するコメント
Keynote: dynamic!
- 聞く前まではどんな内容なんだろうと思った
- アジャイル全推しな内容だった
- いきなり最適解を導くのが難しいからこそ、改善を続けていくこと
- とはいえ、常に最適な解を追い求めることを続けることが大事である
もう並列実行は怖くない コネクション枯渇とデッドロック解決の実践的アプローチ
- 自分も業務で踏んだ、非同期処理に関するトラブルで、なんだか懐かしい気持ちにもなった
- 非同期処理実装の時は、DBのコネクションプールサイズ=sidekiqのスレッド数+1と適切に設定することが必要
- sidekiqは起動時に自動で自身のコネクションプールサイズを別で確保するため
全問正解率約3%: RubyKaigiで出題したやりがちな危険コード5選
- 頭の中だけで考えるのは確かに難しいクイズだった
- NGな理由を複数細かく解説してくれているのが印象に残った点
- トランザクション内で外部APIや非同期処理の実行は避けること(大事!)
- StandardErrorを丸ごとキャッチする実装は避ける
- 既存のコードについつい合わせてしまいがちなのですが、なるべく避けるようにしたいと改めて思った
Railsによる人工的「設計」入門
- 教えるのが難しい設計について、取り組みやすいアプローチを解説されていて、大変参考になった
- 物事を逆算して、完成した機能から考える
- ソースコードベースで考えないこと
- Railsに標準で存在する機能をなるべく組み合わせて作るようにする
- 人間の頭は一度に考えられる限界があるので、少しずつ順番に考えていくのがいいのではないかと思った
今改めてServiceクラスについて考える 〜あるRails開発者の10年〜
- Serviceクラス全否定という内容ではなかったように思う
- 厄介な複数の処理を詰め込む対象として安易にServiceクラスを使わない
- 命名が適切にできるのか
- チーム内でサービスクラスに関する認識を合わせる必要がある。ここができていないと途端にアーキテクチャが崩れる
- 経験も能力もバラバラなチーム開発においては、MVCに沿って作るのが現実的にチーム内の認識を得て作る限界のラインなのだろうと思う
- いずれにせよ、MVCから逃げずにとことんまで向き合うことが大事
2重リクエスト完全攻略HANDBOOK
- 二重リクエスト防止のための方法が複数述べられてて参考になった
- おすすめの解決手法も説明されていて、親切でした
- 基本は、フロントのボタンの非活性化とバックエンドのPRG、テーブル設計を適切にできていればほとんどのケースは対応できる
Sidekiq その前に:Webアプリケーションにおける非同期ジョブ設計原則
- 非同期ジョブに関する基本的な説明からされていて、初心者向けの丁寧な内容だと思った
- とはいえ、デメリットも多く、障害発生時に原因の特定に時間がかかることもある。使い所を丁寧に見極めることが最も大事
Railsアプリから何を切り出す?機能分離の判断基準
- 複数の明示的な判断基準を組み合わせることで、機能分離がどれほど適切かを可視化していた
- 機能分離の推奨度が実際低い場合、後から分離が失敗だったとなることもあり、実戦でも十分に使える判断基準だろうと思った
Keynote: Building and Deploying Interactive Rails Applications with Falcon
- 英語のセッションですが、日本語での解説字幕、スライドのわかりやすさもあり、わかりやすかった。発表者の人柄が伝わってくるなと思った
- フォーカスのスライドめっちゃいいなと思った。あとでXでご本人が教えてくれてとても嬉しかった。
- 足りないものを全部自分で作っていこうというのは、技術者としてとても尊敬できるし、自分もそうなっていこうと思うようになった
終わりに
簡単なまとめになりますが以上です!
知り合いのエンジニアたちと再会できたり、ネット上で繋がってた方々と改めて挨拶できたのもとても良い体験になったなと思いました。