『Kaigi on Rails 2023』の1日目に参加してきたので発表見たよメモ
見た各発表の感想
※資料スライドは見つけたら貼ります。
スケーラブルActive Jobs with Sidekiq Enterprise
さきほどの Sidekiq に関するLTのスライド、こちらに掲載しました🙇https://t.co/7YMiitCTQc#kaigionrails
— 山崎良祐 / Ryosuke Yamazaki (@nappa) 2023年10月27日
感想
- スケールインをするときに非同期処理をうまく扱うためへのAWSの話とsidekiqの話
- Sidekiq Enterprise、名前は聞いたことあるがどういう利点があるかを知らなかったので実例を交えて聞けてよかった
関連リンク
- Sidekiq Enterpriseの同時実行数制御を理解する - Studyplus Engineering Blog
- Amazon ECS タスクのスケールイン保護の発表 | Amazon Web Services ブログ
基調講演
動画はこちら
感想
- zzakさんの「Railsへ貢献してくれる人のためにやっている取り組み」を紹介
- Rails Guide照らし合わせたAPIドキュメントとの差異の修正の話
- This Week in Railsの更新についての話
- RailsそのもののCIを整備している話
- Railsへの貢献、というと実コードへの貢献を考えがちだが、こういうRailsを使いやすくする・修正しやすくするという取り組みでも貢献できるのだなと改めて感じた
- 自分自身OSS活動などはできていないタイプの人間なので、こういう土台を支える作業をやるのもアリなのかなと思いました。
関連リンク
- RailsのCIページ
- rubocop/tasks/changelog.rake at master · rubocop/rubocop - ChangeLogの生成方法の一例として紹介
- 週刊Railsウォッチ: Sidekiqが10歳に、BuildKiteのテストを高速化、フィーチャーフラグほか(20220131前編)|TechRacho by BPS株式会社
Rails アプリの 5,000 件の N+1 問題と戦っている話
この後お話する資料です。
— makicamel (@makicamel) 2023年10月27日
「Rails アプリの 5,000 件の N+1 問題と戦っている話」というタイトルでお話をします!#kaigionrailshttps://t.co/Ofopq6HVDB
感想
- N+1をうまく倒すにはという話
- トーク内容がバラエティに富んでいました。
- N+1がおきる原理とそもそもの対応法
- Bulletの警告を基軸にincludesに置き換えていくgem
- includesとeager_load/preloadの対応の切り分け方と考え方
- 現実ではどうやって立ち向かっていくか
- gemを作った話のすごさもさることながら、N+1問題の知識のおさらいとして共有したくなるスライドでした。
関連リンク
- ActiveRecordのjoinsとpreloadとincludesとeager_loadの違い #Rails - Qiita
- flyerhzm/bullet: help to kill N+1 queries and unused eager loading
- makicamel/bulletmark_repairer: Auto corrector for N+1 queries detected at runtime with Bullet
生きた Rails アプリケーションへの delegated types の導入
感想
- あとから追加された仕様に引きづられてテーブル構成をかえないといけなくなったときにDelegated Typesを採用した話
- ユースケースがわかりやすく、また移行プロセスも地に足ついた話でなるほどーと思いながら聞いていた。
- ポリモーフィック関連に関しては取り扱ったことがあったがDelegetedTypesは知らなかったので、もしマッチするときはスッと使いたいなと思いました。
関連リンク
- Rails: ActiveRecord::DelegatedType APIドキュメント(翻訳)|TechRacho by BPS株式会社
- t-wadaさんとのSQLアンチパターン勉強会 | FiNC Developers Blog
Exceptional Rails
みなさん一日目お疲れ様でした。取り急ぎ今日のぼくの発表資料を置いておきます!明日も楽しみにしています(\\( ⁰⊖⁰)/) https://t.co/nlYYOHQHqN #kaigionrails
— willnet (@netwillnet) 2023年10月27日
感想
- 例外をどう取り扱うべきかという話。
- 普段ちゃんと例外を取り扱うべきか、というところはなんとなくでやってしまっている部分も多いのでためになった
Rails.error.handle
の存在、Rails7.1からActionDispatch::ExceptionWrapper.rescue_responses
の挙動が変更されたことなどは知らなかったので勉強になった
関連リンク
- Rails アプリケーションのエラー通知 - Railsガイド
- 週刊Railsウォッチ: Arel::Nodes::Cteが追加、html_escape_onceの修正ほか(20230613前編)|TechRacho by BPS株式会社
- Exceptional Railsの発表内容について - clean-rails.org
- Railsで最上位までExceptionが抜けた場合にRails側でハンドリングしてくれるエラーを追加したい場合はconfigに設定を追記する - コード日進月歩
Update Billion Records
本日 Update Billion Records という内容で登壇しました #kaigionrailshttps://t.co/Tr961Y019v
— てんきゅー (@talkto_me) 2023年10月27日
感想
- たくさんのデータを移行するためのプロセスに関しての事例
- ユースケースに左右されるので難しいが、適切なデータ分割を見極めるのはドメイン理解がないと難しそうだなと感じました
- 前例踏襲だとしんどい部分をsidekiqなどを使って分解した苦労が垣間見えました
関連リンク
Simplicity on Rails - RDB, REST and Ruby
本日の #kaigionrails の発表資料です。 https://t.co/Fiw1CA4Ydj
— MOROHASHI Kyosuke (@moro) 2023年10月27日
聞いてくださった皆様、発表機会をくださったオーガナイザーの皆様、ありがとうございます!
Day2 も気楽になって楽しみたいと思います。
感想
- RDB、REST、Rubyのパートに分けていい感じにシンプルなものをつくるという話
- RESTとCRUDが明確に紐づくわけではない、というを明言しながら話している内容はあまりないので他の人に共有する面でもいい話だった
- モノとコトに分ける話はSoRとSoEの話につながる部分があるのかなと思いながら聞いてました。
関連リンク
- 全体がいい感じになるために、私たちRailsをホームにするWeb技術者ができること/let-our-whole-system-grow - Speaker Deck
- ビジネスの構造を扱うアーキテクチャとユーザとの接点を扱うアーキテクチャ #builderscon - Speaker Deck
トークに出てきた「イベントエンティティ」となる交差テーブルを見出す・名付ける手法についてのメモを書いているので参考にしてください #kaigionrailshttps://t.co/GHT3s1BImJhttps://t.co/fcWASDvAI2
— Toru KAWAMURA (@tkawa) 2023年10月27日
技術的負債の借り換え on Ruby and Rails update
感想
- 増え続ける技術負債を完全に解消するのではなく、より軽い負債に乗り換えていくためにはどうするかという話
- 選択肢としてwrapperをつくるというのが経験がなく、実例もみたことがなかったのでいままで脳内から排除していたが選択肢として持つのはよさそうと感じた
関連リンク
- Railsアップグレード百景 - Speaker Deck
- 永久保存版Railsアップデートガイド - pixiv inside
- 永久保存版!?伊藤さん式・Railsアプリのアップグレード手順 #Ruby - Qiita
ライブラリのバージョン変更時のアプリ側での対応、自分もカスタムCop使うことが多い。検知と報告、ToDoリスト、テスト、autocorrector等、変更作業や変更依頼やレビューが楽になる仕組みが揃ってる#kaigionrails #kaigionrailsA
— r7kamura (@r7kamura) 2023年10月27日
seeds.rbを書かずに開発環境データを整備する
「seeds.rbを書かずに開発環境データを整備する」本日の発表資料です!https://t.co/OhNs9wFlPA #kaigionrails #kaigionrailsA
— ごぐたん (@gogutan) 2023年10月27日
感想
- seed.rbを愚直にかかないでカバーする方法の実践例
- 本番データをdumpして加工してやる、よりも健全な方法だった。
- 一回目に実行するときにリトライ処理をして正常な順番を見出すというアプローチはなるほど、という感じだった
関連リンク
- mbleigh/seed-fu: Advanced seed data handling for Rails, combining the best practices of several methods together. - おなじみseed.fu、ただし新しく使うのはちょっと怖い
- seedのベストプラクティス - Studyplus Engineering Blog
Active Record クエリクイズ
Kaigi on Rails 2023 で、Active Record Query Quiz というタイトルで発表しました - pockestrap
感想
- ActiveRecordの
exists?
やeach
で回しているときにどっちを実行すると効率よく取れるかをクイズ形式で紹介 - キャッシュが効く、みたいな話は聞いたことあるがわかりやすい例で紹介されたので理解しやすかった。
関連リンク
一日目を通しての感想
- 久しぶりの物理開催の大きめカンファレンス参加、色々聞けて良かった
- 本日は大きいホールであるRoomAにずっといたが、明日はフレキシブルに動こうかなーというところ。
- 各ブースも回りたかったが、休憩長めのときには混雑するのであまり回れず。明日は回りたい。