# コードレビュー観点 v1.0.11+21 ## 1. Phase D6設計整合性 ⭐⭐⭐⭐⭐ ### 1-1. filteredByModeProvider経由の確認 - [ ] `rawSakeListItemsProvider`が不適切に使用されていない - [ ] 例外: 空状態判定で`filteredByModeProvider`を使用 ### 1-2. Personal/Business Mode判定 - [ ] `userProfile.isBusinessMode`で判定 - [ ] または`.select((p) => p.isBusinessMode)`でパフォーマンス最適化 --- ## 2. 非同期処理の安全性 ⭐⭐⭐⭐⭐ ### 2-1. BuildContextキャプチャパターン - [ ] async gap前に`final navigator = Navigator.of(context);` - [ ] async gap前に`final messenger = ScaffoldMessenger.of(context);` - [ ] async gap後は`navigator.pop()`を使用 ### 2-2. mountedチェック - [ ] すべてのasync gap後に`if (!mounted) return;` ### 2-3. Linter警告 - [ ] `use_build_context_synchronously`警告がゼロ --- ## 3. パフォーマンス ⭐⭐⭐⭐ ### 3-1. Provider最適化 - [ ] `.select()`による部分監視 - [ ] 不要な`ref.watch()`がない ### 3-2. リスト最適化 - [ ] `ListView.builder`使用(大量データ対応) - [ ] 画像キャッシュが適切 --- ## 4. 保守性 ⭐⭐⭐⭐ ### 4-1. マジックナンバー - [ ] `AppConstants`クラスに定義済み - [ ] ハードコードされた数値がない ### 4-2. コメント - [ ] 意図的な設計判断にコメント - [ ] 複雑なロジックに説明コメント ### 4-3. ドキュメント - [ ] CURSOR_HANDOFF_FINAL_v1.0.10+20.md参照 - [ ] 将来的検討事項が文書化 --- ## 5. 意図的なハードコーディング(保護) ⭐⭐⭐⭐⭐ 参照: `SAFE_FIXES_REPORT.md` ### 5-1. 変更してはいけない箇所 - [ ] `lib/widgets/home/sake_grid_item.dart`:102 `Colors.black54` - [ ] `lib/screens/home_screen.dart`:86-88 `Colors.white` - [ ] SpeedDialオーバーレイ ### 5-2. 変更理由の確認 - [ ] 視認性確保のため(画像オーバーレイ) - [ ] AppBar常にダーク背景のため(検索フィールド) --- ## レビュー実施記録 **レビュアー**: ___________ **レビュー日時**: ___________ **結果**: Approved / Changes Requested **コメント**: ___________