Flutter 代码审查¶
该命令会调用 flutter-reviewer 智能体,审查 Flutter/Dart 代码变更。
该命令的工作方式¶
- 收集上下文:审查
git diff --staged和git diff - 调查项目:检查
pubspec.yaml、analysis_options.yaml和状态管理方案 - 安全预扫描:检查硬编码密钥和严重安全问题
- 完整审查:应用完整审查检查清单
- 报告发现:按严重级别分组输出问题,并附带修复指南
前提条件¶
在运行 /flutter-review 之前,请确认以下事项:
1. 构建通过 — 先运行 /flutter-build。审查损坏的代码是不完整的
2. 测试通过 — 运行 /flutter-test 确认没有回归
3. 没有合并冲突 — 解决所有冲突,确保 diff 仅反映预期变更
4. flutter analyze 干净 — 在审查前修复分析器警告
使用时机¶
使用 /flutter-review 的时机:
- 提交包含 Flutter/Dart 变更的 PR 之前(构建和测试通过后)
- 实现新功能后,以便尽早发现问题
- 审查他人的 Flutter 代码时
- 审计 Widget、状态管理组件或服务类时
- 生产发布前
审查领域¶
| 领域 | 严重级别 |
|---|---|
| 硬编码密钥、明文 HTTP | CRITICAL |
| 架构违规、状态管理反模式 | CRITICAL |
| Widget 重建问题、资源泄漏 | HIGH |
缺少 dispose()、await 后的 BuildContext |
HIGH |
| Dart 空安全、缺少错误/加载状态 | HIGH |
| Const 传播、Widget 组合 | HIGH |
性能:build() 内的高成本处理 |
HIGH |
| 可访问性、语义标签 | MEDIUM |
| 缺少状态转换测试 | HIGH |
| 硬编码字符串(l10n) | MEDIUM |
| Pub 依赖项卫生管理 | LOW |
会话示例¶
User: /flutter-review
Agent:
# Flutterコードレビュー
## コンテキスト
変更されたファイル:
- lib/features/auth/presentation/login_page.dart
- lib/features/auth/data/auth_repository_impl.dart
状態管理: Riverpod(pubspec.yamlから検出)
アーキテクチャ: feature-first
## セキュリティ事前スキャン
✓ ハードコードされたシークレットは検出されませんでした
✓ 平文HTTPコールはありません
## レビュー所見
[HIGH] 非同期ギャップ後にmountedチェックなしでBuildContextを使用
File: lib/features/auth/presentation/login_page.dart:67
Issue: `context.go('/home')`が`await auth.login(...)`の後に`mounted`チェックなしで呼び出されている。
Fix: await後のナビゲーション前に`if (!context.mounted) return;`を追加(Flutter 3.7+)。
[HIGH] AsyncValueのエラー状態が未処理
File: lib/features/auth/presentation/login_page.dart:42
Issue: `ref.watch(authProvider)`がloading/dataでswitchしているが、`error`ブランチがない。
Fix: switch式または`when()`コールにerrorケースを追加してユーザー向けエラーメッセージを表示。
[MEDIUM] ハードコードされた文字列がローカライズされていない
File: lib/features/auth/presentation/login_page.dart:89
Issue: `Text('Login')` — ユーザーに表示される文字列がローカライゼーションシステムを使用していない。
Fix: プロジェクトのl10nアクセサを使用: `Text(context.l10n.loginButton)`。
## レビューサマリー
| 重大度 | 件数 | ステータス |
|--------|------|-----------|
| CRITICAL | 0 | pass |
| HIGH | 2 | block |
| MEDIUM | 1 | info |
| LOW | 0 | note |
判定: BLOCK — HIGH問題はマージ前に修正が必要です。
批准标准¶
- 批准:没有 CRITICAL 或 HIGH 问题
- 阻止:CRITICAL 或 HIGH 问题必须在合并前修复
相关命令¶
/flutter-build— 先修复构建错误/flutter-test— 审查前运行测试/code-review— 通用代码审查(语言无关)
相关¶
- 智能体:
agents/flutter-reviewer.md - 技能:
skills/flutter-dart-code-review/ - 规则:
rules/dart/
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC