AetherEchoesEngineering
Vol.042025年5月13日
Engineering#00051 min2713 view

N+1 を「発見する習慣」を仕組みで持つ

ActiveRecord の N+1 を「気づける開発者」を増やすのは難しい。代わりに、CI と Bullet で「気づかざるを得ない」状態を作る話。

SoSoraEndo2025年5月13日1 min271

個人技にしないために

N+1 は知識ではなく「気づき」に依存します。だからレビューで指摘するより、気づかざるを得ない仕組みを CI と開発体験に組み込む方が早い。

仕組みの組み合わせ

  1. Bullet を development で Bullet.raise = true にする — 検出時にテストや画面が落ちる
  2. prosopite を test で導入し、CI でも検出する
  3. logger を仕込んで、発生箇所のスタックトレースを Slack に投げる

レビューでの追記コメント

指摘は「N+1 です」だけだと弱い。includespreloadeager_load のどれを使うべきか、SQL の行き先まで一緒に書くと、書き手が次から自分で判断できるようになります。

まとめ

仕組みで網を張り、レビューで判断軸を渡す。これを 3 ヶ月続けると、チームの平均的な ActiveRecord リテラシーが目に見えて上がります。

Tags

Reaction

Share

X (Twitter)