Skip to content

perf(workbooks): fetch only referenced tasks on CURRICULUM tab instead of all tasks#3663

Merged
KATO-Hiro merged 3 commits into
stagingfrom
#3662
Jun 14, 2026
Merged

perf(workbooks): fetch only referenced tasks on CURRICULUM tab instead of all tasks#3663
KATO-Hiro merged 3 commits into
stagingfrom
#3662

Conversation

@KATO-Hiro

@KATO-Hiro KATO-Hiro commented Jun 14, 2026

Copy link
Copy Markdown
Collaborator

close #3662

Summary by CodeRabbit

リリースノート

  • 改善

    • 問題集に紐づくタスク情報の読み込みを最適化しました。ログイン中のユーザーがカリキュラムタブを閲覧する際、参照される問題集のタスク情報のみを効率的に読み込むようになり、パフォーマンスが向上しました。
  • テスト

    • タスクID管理ロジックの検証テストを追加しました。

KATO-Hiro and others added 3 commits June 14, 2026 07:52
…d of all tasks

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ization

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…e-liner

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 34121f30-8bcf-4752-99b3-90582f555515

📥 Commits

Reviewing files that changed from the base of the PR and between c3708a5 and b678286.

📒 Files selected for processing (4)
  • src/features/workbooks/utils/workbooks.test.ts
  • src/features/workbooks/utils/workbooks.ts
  • src/routes/workbooks/+page.server.ts
  • src/routes/workbooks/+page.svelte

📝 Walkthrough

Walkthrough

buildTaskIdsFromWorkbooks ユーティリティを新規追加し、Set による重複排除で参照タスク ID を収集する。+page.server.tsload を変更し、CURRICULUM タブ+ログイン時のみ参照タスクを取得して grade のみの Map を構築するよう制限した。対応する型注釈と単体テストも追加。

Changes

問題集タスク取得の最適化

Layer / File(s) Summary
buildTaskIdsFromWorkbooks ユーティリティと型変更
src/features/workbooks/utils/workbooks.ts, src/features/workbooks/utils/workbooks.test.ts
buildTaskIdsFromWorkbooks を追加(workBookTasks から taskId を収集し Set で重複排除して string[] 返却)。calcWorkBookGradeModestasksMapByIds 型を Map<string, Pick<Task, 'grade'>> に縮小。テストで重複排除・空入力・タスクなし各ケースを検証。
load のタスク取得ゲート
src/routes/workbooks/+page.server.ts
Promise.all から tasksMapByIds 取得を分離。CURRICULUM タブかつログイン中の場合のみ buildTaskIdsFromWorkbooksgetTasksWithSelectedTaskIds で参照タスクの grade のみの Map を構築。それ以外は空 Map。
型注釈の更新
src/routes/workbooks/+page.svelte
tasksMapByIds の型注釈を Map<string, Pick<Task, 'grade'>> に変更し、calcWorkBookGradeModes 呼び出しに渡る型情報を統一。

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🗂️ 9000件のタスクよ、さらば
CURRICULUMだけ、gradeをひとつかみ
Setが重複を静かに消して
空のMapが他のタブを迎える
ペイロード、97%の静寂へ ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 75.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PR タイトルは変更の主眼である「CURRICULUM タブでの参照タスクのみ取得」と「全タスク取得の廃止」を的確に表現しており、PR 目的と完全に合致している。
Linked Issues check ✅ Passed Issue #3662 の全要件(CURRICULUM ゲート、参照タスクのみ取得、grade カラム限定、匿名スキップ、ヘルパー抽出テスト)を実装し、テスト追加も含め完全に満たしている。
Out of Scope Changes check ✅ Passed 全変更がタブゲート・参照タスク取得・型絞り込みに限定され、detail/create/edit ページや getTaskResultsOnlyResultExists など後続タスク領域への影響は一切ない。

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch #3662

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@KATO-Hiro KATO-Hiro left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@KATO-Hiro KATO-Hiro merged commit 17efa94 into staging Jun 14, 2026
3 checks passed
@KATO-Hiro KATO-Hiro deleted the #3662 branch June 14, 2026 08:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[perf] 問題集一覧の取得処理で必要なデータに限定しましょう

1 participant