SuperAPI AI 工具集

flutter-dart-code-review

编程与开发

查看项目

更新于 10-15 10:54

技能介绍

用途

本技能是一份与具体库无关的 Flutter/Dart 代码审查清单,用于系统性地检查 Flutter/Dart 应用代码质量。其原则不依赖于所采用的状态管理方案、路由库或依赖注入框架,因此可作为通用审查依据。

主要能力(审查维度)

清单按十二个方面组织:

  1. 项目整体健康度:目录结构一致性、关注点分离(UI、业务逻辑、数据层)、pubspec.yaml 整洁度、analysis_options.yaml 严格 lint、生产代码中无 print()、生成文件管理、平台特定代码隔离。
  2. Dart 语言陷阱:隐式 dynamic、空安全误用(过度使用 !)、类型提升失败、过宽捕获异常、捕获 Error、无 await 的 async、late 滥用、循环中字符串拼接、const 上下文中的可变状态、忽略 Future 返回值、var/final/const 选择、相对导入、暴露可变集合、缺少 Dart 3 模式匹配、多返回值用记录类型、生产代码中的 print()。
  3. Widget 最佳实践:Widget 拆分(build 方法长度、按重建边界拆分、私有 _build* 方法提取为独立 Widget 类)、const 使用、Key 使用(ValueKey、GlobalKey、UniqueKey、ObjectKey)、主题与设计系统(颜色与文字样式来自 Theme,深色模式兼容,间距使用设计令牌)、build 方法复杂度(不在 build 中做网络、IO、重计算、Future.then、订阅创建,setState 局部化)。
  4. 状态管理(库无关):架构(业务逻辑在 Widget 层之外、依赖注入、服务/仓库层抽象、单一职责、跨组件依赖约定)、不可变性与值相等(copyWith、== 与 hashCode、集合不可变)、响应式纪律(通过响应式 API 变更状态、派生值、清理反应与 disposer)、状态形态设计(互斥状态用密封类型而非布尔标志、异步操作建模 loading/success/error、穷尽处理、错误状态携带信息、不用可空数据表示加载)、重建优化、订阅与释放(取消订阅、关闭 Stream、取消 Timer、mounted 检查、await 后检查 context.mounted、不存储 BuildContext)、本地与全局状态划分。
  5. 性能:不必要的重建、build 中的昂贵操作、图片优化、懒加载、其他(动画中避免 Opacity 与裁剪、不在 Widget 上重写 ==、少用 Intrinsic 尺寸)。
  6. 测试:测试类型(单元、Widget、集成、Golden)、覆盖率目标、测试隔离、Widget 测试质量。
  7. 无障碍:语义 Widget、屏幕阅读器支持、视觉无障碍(对比度、点击目标尺寸、颜色非唯一指示、文字缩放)、交互无障碍。
  8. 平台特定问题:iOS/Android 差异、响应式设计。
  9. 安全:安全存储、API 密钥处理、输入验证、网络安全。
  10. 包/依赖审查:评估 pub.dev 包、版本约束、monorepo 特定事项。
  11. 导航与路由:统一路由方式、类型化参数、路径常量、集中式鉴权守卫、深链接配置与校验、可测试性、返回行为。
  12. 错误处理:FlutterError.onError、PlatformDispatcher.instance.onError、ErrorWidget.builder、全局错误捕获包装。

使用方式

资料未提供具体安装命令或调用步骤,仅以清单形式列出审查项,并附有少量代码示例(如用密封类型替代布尔标志的状态建模示例)。

适用场景

适用于对 Flutter/Dart 应用进行代码审查、自查或团队规范制定,尤其适合需要跨不同状态管理方案保持统一审查标准的项目。

限制

资料未提供该技能的安装方式、运行环境、收费信息或具体工具集成方式;部分条目(如错误报告部分)在资料中未完整展开。