79 lines
2.2 KiB
Markdown
79 lines
2.2 KiB
Markdown
# コードレビュー観点 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
|
||
**コメント**: ___________
|