開発概要
目的
notification_usecase.go の processGroup 関数で発生している N+1 問題を解消する
- shift / task のバッチ化と同じ手法で、user / date / weather もバッチ取得に統一する
- 通知件数増加時のDB負荷を線形ではなく定数時間に抑える
開発期間
考えられる開発内容
1. N+1 箇所の特定(既知)
1.1 processGroup 関数内の個別Find
ファイル: api/lib/usecase/notification_usecase.go
10ユーザー × 5日間で50グループ = 150 個別クエリ発生。
2. 実装方針
既存の `loadShiftMap` / `loadTaskMap` と同じパターンで以下を追加:
3. 関連箇所の調査(uchidaさん提案)
備考
参考
開発の流れ
- PMにIssue(タスク)をもらう
- 開発をする(↓の「リンク」の『開発のやり方』を見よう!)
- チェックボックスを押していこう
- ヤバい状況になったらIssueの右側にあるStatusを「Help」にしてPMにSlackで連絡しよう
- チェックボックスが全部押せたらプルリクを作ろう
- レビューを待とう
- 修正点があれば修正しよう。なければPMがマージします!お疲れ様!
リンク
開発概要
目的
notification_usecase.goのprocessGroup関数で発生している N+1 問題を解消する開発期間
考えられる開発内容
1. N+1 箇所の特定(既知)
1.1
processGroup関数内の個別Findファイル:
api/lib/usecase/notification_usecase.go10ユーザー × 5日間で50グループ = 150 個別クエリ発生。
2. 実装方針
既存の `loadShiftMap` / `loadTaskMap` と同じパターンで以下を追加:
3. 関連箇所の調査(uchidaさん提案)
備考
参考
開発の流れ
リンク