Upgrade to Pro — share decks privately, control downloads, hide ads and more …

バラバラだった staleTime を、データの性質で4プリセットに集約する

バラバラだった staleTime を、データの性質で4プリセットに集約する

Avatar for Yuji Yamaguchi

Yuji Yamaguchi

July 17, 2026

More Decks by Yuji Yamaguchi

Other Decks in Programming

Transcript

  1. • 業務 ◦ プロダクトエンジニア・エンジニア採用・技術広報 • 経歴 ◦ 1987/12 埼玉県本庄市生まれ ◦

    2011/04 ソフトバンクモバイル株式会社 ◦ 2016/01 株式会社サイバーエージェント ◦ 2016/10 株式会社リクルートライフスタイル ◦ 2021/09 株式会社ラクス ◦ 2022/08 株式会社HRBrain ◦ 2025/07 Dress Code株式会社 • プライベート ◦ マンガ・アニメ・ゲーム・映画 ◦ 三児の父(中3, 中1, 年中) 自己紹介 山口 祐司 ぷーじ(@yug1224) 3
  2. CONFIDENTIAL | © Dress Code Inc . All rights reserved.

    14.1億円  資金調達を実施 Pre Seed&Seed Round 200+社 が利用中  Number of companies Number of countries 5カ国 で事業を展開  会社概要 Company Name / 会社名 Dress Code 株式会社 2024年9月 正式創業:2025年4月 47名 東京都中央区築地2-1-4 銀座PREX East 8F CEO / 代表取締役 Date of establishment / 設立年月 Location / 所在地 江尻 祐樹 Member / メンバー数 5
  3. データの性質で選ぶ 4 プリセット 9 • 「この画面は何分?」ではなく 「このデータはどんな性質?」で選ぶ ◦ list():一覧向け、他の人の更新を少し遅れて拾う ◦

    daily():重い集計向け、当日中は取り直さなくてよい ◦ detail():編集前の詳細向け、いつも最新がほしい ◦ confidential():個人情報など、キャッシュに残したく ない • 全部一気に直さず、触った画面から少しずつ寄 せる ◦ 迷ったらまず list()
  4. 迷ったら list()、daily() の誤用に注意 10 • キャッシュが「まだ新しい」判定だと、タブを 戻しても取り直さない • 同日中のバッチ結果をタブ復帰だけで拾いたい 画面に

    daily() だと、一日中取り直されない • タブを行き来しても画面が古いままなら、そう いう画面は list() • 日付が変わっても、開きっぱなしだと自動では 取り直されない • list() 以外にするときは、理由をはっきりさせ てから
  5. Read Model は一時ポーリングで追う 11 • 保存が成功しても、画面用データは裏で作り直 されることがある • だから API

    が返っても、画面はまだ古いことが ある • キャッシュを捨てるだけでは、すぐ最新に追い つかない • そこで数十秒だけ、取り直し間隔を短くする ◦ ポーリングブースト • 終わったら普通の設定に戻し、ずっとポーリン グはしない
  6. セッション境界では cancel してから clear 12 • まず Query Key に組織

    ID を入れる ◦ テナントを混ぜない • 念のため、進行中の通信を止めてからキャッシュ を捨てる • ログアウト、組織切替、セッション切れで、同じ 手順に揃える • 組織を切り替えたら、次のログイン処理の前に キャッシュを消す
  7. • 「何分キャッシュ?」ではなく「list か daily か」で話す • 裏で作り直すデータは、必要な間だけ短く追い かける • まず

    3〜4 種類に分けて、直す画面から少しず つで十分効く • くわしくは Zenn 記事へ ◦ https://zenn.dev/dress_code/articles/78ce46997 dfe96 まとめ 13