初めに
この記事はKaigi on Rails 2025 day2の感想と自分が思うキーワードのまとめです。
半ば勢いで書いていますので、参加していない方は「こいつは何を言っているんだ?」となる可能性があります。
詳しい内容や過去を遡って確認したい方は向いていない可能性があります。
よって、対象は以下を想定しています。
- Kaigi on Rails 2025 に参加していて、他の人の感想が気になる方
- 帰りの新幹線や飛行機など移動中に振り返りたい方
セッションごとのキーワードと感想
補足
- キーワード → セッション直後に残した単語
- 感想 → ある程度まとめた自分自身の言葉
2重リクエスト完全攻略HANDBOOK
発表資料URL
キーワード
- Idempotency-Key
- テーブル設計(ユニーク制約)
- 悲観ロック、楽観ロック
感想
2重リクエストってブラウザのサブミットボタン防ぐ くらいしかしらなかったので、実に多くの考え方があるんだなとわかりました。ただのレコード追加じゃなく、お金が関わる系の処理で2重リクエストが起きるととんでもないことになるので、場合によっては強固に防ぐ必要があり、その方法も色々考えられているんだなと思いました。
Idempotency-Key はStripeで使っているって聞いたことあるので、中身見てみたいなと思いました。
履歴 on Rails : Bitemporal Data Modelで実現する履歴管理
発表資料URL
- (発見次第追記)
キーワード
- 人事労務ソフトとして、誰の情報がいつどんなものだったかを知りたいが、ただの履歴ではなかなか満たせない
- 時間軸を2つにして解決を試みる
- bitemporal data model は便利だけどやめるのが大変
感想
メリットは必要な管理ができるけれど、gemに頼らないと実装が難しい かつ 一度導入するとやめるのが難しいなど課題が多く、導入はだいぶ慎重にならないといけないものだなと思いました。
あるユーザーの履歴レコードのうち、最新は一つだけとか有効なものは1つだけ みたいなDBレベルの制約があると多少マシ?な気もしたけどすでに対応されているんだろうなと・・・。いつか自分も触れることになるかもしれないと思うと、事前に課題を知ることが出来てよかったです。
階層構造を表現するデータ構造とリファクタリング 〜1年で10倍成長したプロダクトの変化と課題〜
発表資料URL
キーワード
- 自己結合の階層構造の話(ただの親と子ではない)
- 隣接リストはシンプルだけどSQLが大変
- 閉包テーブルと再帰CTE
感想
自己結合のテーブルがあんなに深くなること考えたことなかったなーと。 あるユーザーにはこのフォルダを見せたい、特定のユーザーはこのフォルダにアクセスさせたくない みたいな要件がでてきたとき、結構大変なことになりそうだなという印象でした。 画面側で1つ1つ判定せず、SQL側で解決しようとすると終わってしまいそうですね・・・。
と、最初メモしていたのですが、登壇者の方と話してアップデートされました。
SQLを発行して、返り値は配列ではなくActiveRecordなのでscopeをチェーン出来ますよ と教えていただきました。ありがとうございました!
非同期処理実行基盤、Delayed脱出〜SolidQueue完全移行への旅路。
発表資料URL
- (発見次第追記)
キーワード
- solid queue に合わせた設計を考えるために、内部実装をちゃんと知る
- 重いジョブを同時実行しないように気をつけよう
感想
今関わっている案件の中にdelayed_jobを使用しているものがあり、solid queueに移行したいなーと思っていたのでよい内容でした。jobに限らないですが内部実装をちゃんと知るというのは大事だなと思いました。導入前に中身見てみようと思います。
solid queue が早すぎて重いjob複数呼んじゃう。は気を抜くと引いちゃいそうなので聞けてよかったです!
非同期jobをtransaction内で呼ぶなよ!絶対に呼ぶなよ!
発表資料URL
- (発見次第追記)
キーワード
- transactionのコミットとjobの開始がずれる
- job開始時にレコードがないとエラー
感想
普段sidekiqを使用せずにDBのテーブルにjobを積むような仕組みをいつも使っていたので、実態系にはなかった話でした。ただ、よく聞く話ではあるのでこの場で聞けてよかったです。
## rails g authenticationから学ぶRails8.0時代の認証
発表資料URL
キーワード
- 認証機能は理解しておこう
- 認証、パスワード、リセットなどそれだけでもいろいろある
- セキュリティの担保には技術力の向上が不可欠
感想
何度か使ったことある機能でしたが、中身全然知らないなぁって思いました。勝手にやってくれるって、便利だけど怖い。
deviseに頼りがちな部分があるのは否めず、実際便利だよなぁと調べることを放棄してました。せっかく新しい機能なのでソースコード読んでみようかなと思いました。
終わりに
day1と違って帰宅する前に投稿です。これで眠くない・・・。
day2はセッションの他、ブースを少し回ったりしていたのでセッションの感想は少なめです。(昼食べるの遅くて参加出来なかったのは内緒)
day2も当日のxへのpostをまとめています。ライブ感を味わってください。 → https://posfie.com/@umikun_summer/p/7Sm7BOw