Skip to main content

Kaigi on Rails 不参加記 Part2

Kaigi on Rails 不参加記とは #

Kaigi on Railsには参加してないけど最近Rails周りなんもキャッチアップしてないと焦っている人間による、公開されている資料を見ての適当な感想を書く記事です。
運営の方々、発表者の方々、資料まとめてくださっている@hassanさん、その他皆々様ありがとうございます!!!!!!!
Kaigi on Rails 不参加記 Part1の続きです。

資料ごとの感想 #

Update Billion Records

  • 単純にやり方として良さそう〜。ジョブの数も制御できるし、緊急停止ボタンの実装も簡単そう。
  • 非同期処理で大量のレコードを更新するときって、途中で何らか失敗するのが怖いよね(想定外の形式のレコードがあったりとか)。
    • 特に生きてるアプリケーションだとどんどんレコードが追加されてっちゃうので。
  • 選択肢を幅広く考えられて、それぞれのトレードオフを認識して、それらを説明して実行できる。
    • そういふものに(ry

初めてのパフォーマンス改善

  • 改善の手法が全部言語化されててすごい。
  • あとスライドが見やすい。
  • PR文が丁寧なの良い。
  • パフォーマンス改善、テストが書いてあるかが本当に重要だと思う。
    • SQLを改善するのって変更のインパクトが大きくて、隠された仕様を壊してしまうことがありがち。
    • 隠された仕様を壊したら落ちるテストを書いておきたい。
    • プロダクトの初期ってナイーブに素直な実装をすると思うけど、のちの開発者のためにもコードの意図とか仕様とかはなるたけテストで残しておきたい。

Simplicity on Rails – RDB, REST and Ruby

  • この記事でいうイベントエンティティがサービスにおいて重要なの確かに〜
  • DHHのコントローラとルーティングの記事を思い出した。
    • デフォルトのCRUDアクション以外を作りたくなったら別のコントローラを作る。
    • RESTのUniform interfaceの観点を強制されるので良さそうな考え方だと思う。
    • ログインやログアウトをsessionのcreateやdeleteで表現するのは:cool:だと思います!!
  • formオブジェクトすき
    • コントローラで色々やると返り値とかテストしにくいので
    • formオブジェクトでテストしたこと統合テストでどこまでテストするか悩ましいといつも思ってる。
  • Railsの気持ちにしたがって他のRails開発者がびっくりしないようなコードを書いていくぞ
    • 現状は書けてないぞ

TracePointを活用してモデル名変更の負債解消をした話

  • ikkun san のこれ最初に聞いた時あまりにRubyしすぎててびっくりした。
  • 実際、実務の負債解消でTracePoint使える場面ありそう。
    • 削除するメソッドが本当にコールされてないか確認するとか。
    • 早期リターン知見。
  • 業務でリファクタする時って内容よりも、「そのリファクタをして安全なのか?仕様は変わらないか?」を証明するのが大変なので、大変なところをRubyにやらせるのは良さそう。

Turbolinksアレルギー患者に捧げるTurbo & Stimulusでの時短実装術 / Kaigi on Rails 2023

  • RailsのJS周りよくわかんないんだよな..
    • 普通にJavaScriptなんもわかりません
  • Hotwireの「求めていたRailsのview」感はすごい
  • 参考事例がHotwireが向いてそうすぎてよかった。
    • safariは神!最高!

seeds.rbを書かずに開発環境データを整備する

  • 最近seeds.rbあんま見てないな…
  • シーケンスオブジェクトとか日付を常に直近にしたいとか、痒い所への知見をしっかりまとめてくれていてすごい。
  • そういえばDBの情報のスナップショットが取れて更に既存のレコードを削除することなくインポートできるすごいGemがあるらしい

定数参照のトラップとそれを回避するために行う2つのこと

  • ZeitwerkってZeitwerkって読むのか定期
  • 自分が困っていることを解決し、しくみを作り出すのがすごい!
  • テスト内で定数をモックしてると気づけないこととかありますよね。
  • 定数参照だとこの記事もおすすめ

Active Record Query Quiz

  • ActiveRecord::Relation#any?ってオーバライドしても良い気がするけどどうなんだろ。
  • Railsでenumerable呼び出してもどこのany?になるかよくわからん。Method#ownerとかみてしまう。
  • ここでany?を調べてて知ったんだけどmany?ってメソッドあるんですね
  • benchmark-ipsってGem初めて知ったけど強いほうが数字が大きくてわかりやすくて良い。

Rails Executor: the border between application and framework code

  • EVIL MARTIANSさんtest-profいつも本当に助かってます!!!!!!

  • Executor仕組みは前にマルチテナントGemの記事で少し調べたことがあった。

    • Rails周りのGemではよく使われている仕組みであり、ちゃんと知っておかないといけないということですね。
    • Railsガイドにものっている。
    • こういうの見るたびにRailsガイドってどこまで親切なんだ!って思う。
  • コントリビュートチャンスを紹介するのがOSS好きな人っぽさを感じる

まとめ #

  • 今回もすごい資料ばかりで勉強になりました。
  • これでやっとDay1があらかた終わった。コンテンツ盛りだくさんすぎる。
  • Day2分もやるぞ!多分!