Dart/Flutter Patterns

专为 Flutter 应用开发设计的技术模式助手。从代码结构、状态管理到导航、网络请求,提供一套成熟的开发模式和最佳实践,帮助你构建稳定、高效、可维护的 Flutter 应用。

这个技能能帮你做什么

如果你在用 Flutter 开发应用,这个技能能帮你解决开发中常见的架构问题。它不提供具体的 UI 设计建议,而是告诉你代码该怎么组织、数据该怎么流、各个模块该怎么协作,让应用从"能跑"变成"好维护"。

简单说,它能帮你:

  • 组织代码 —— 怎么拆分模块、怎么管理依赖,让项目结构清晰
  • 管理状态 —— 页面间怎么共享数据、状态变化时怎么更新界面
  • 处理异步 —— 网络请求、本地存储等异步操作怎么写最安全
  • 安全编码 —— 空安全、类型安全怎么处理,避免运行时崩溃
  • 测试代码 —— 怎么给 Flutter 应用写测试,确保功能稳定

什么时候用

项目启动时 —— 先确定技术方案和代码结构,避免后期大规模重构

遇到架构问题时 —— 比如"这个页面状态该放哪里?""网络请求失败怎么处理?"

技术选型时 —— 比如状态管理用 BLoC 还是 Riverpod?路由用 GoRouter 还是 Navigator?

代码审查时 —— 检查代码是否符合最佳实践,有没有潜在问题

性能优化时 —— 页面卡顿?重建太频繁?它会告诉你怎么优化

主要覆盖哪些场景

  1. 空安全处理
    • 怎么避免空指针异常
    • 空值该怎么优雅处理
    • 模式匹配让代码更安全
  2. 状态管理
    • BLoC/Cubit:适合复杂业务逻辑,通过事件驱动状态变化
    • Riverpod:更灵活的状态管理,支持依赖注入和自动刷新
    • Provider:经典方案,简单场景的首选
  3. 导航管理
    • GoRouter:声明式路由,支持深度链接和路由守卫
    • 根据登录状态自动跳转(未登录去登录页,已登录去首页)
  4. 网络请求
    • Dio 网络库的配置和最佳实践
    • 自动添加认证 token
    • 请求失败时的重试和错误处理
  5. 错误处理
    • 全局异常捕获,统一处理未捕获的错误
    • 自定义错误页面,提升用户体验
    • 错误上报,帮助开发者及时发现线上问题
  6. 性能优化
    • const 关键字的使用,减少不必要的重建
    • 合理拆分 Widget,局部刷新
    • 异步操作的正确写法,避免内存泄漏

怎么用

搭建项目时 —— 问它"Flutter 项目怎么组织目录结构?",它会给你推荐方案

选择技术方案时 —— 问它"BLoC 和 Riverpod 有什么区别?我该选哪个?"

写代码时 —— 不确定某个功能怎么实现最规范?它会给你最佳实践示例

排查问题时 —— 应用崩溃或卡顿了?它会帮你分析可能的原因

核心原则

做 Flutter 开发时,记住这几条原则:

  1. 优先使用不可变数据 —— 数据一旦创建就不修改,而是通过创建新对象来更新
  2. 小 Widget 优于大 Widget —— 把大文件拆成小组件,方便复用和维护
  3. 局部刷新优于全局刷新 —— 只更新变化的部分,不要整个页面重建
  4. 异步操作要 guard —— 等完网络请求后,检查 Widget 是否还在页面上
  5. 测试驱动 —— 写代码前先想怎么测,测试覆盖核心业务逻辑

适用场景

  • Flutter 应用的整体架构设计
  • 状态管理方案的选择和实现
  • 网络层和错误处理的设计
  • 导航和路由管理
  • 代码审查和性能优化
  • Flutter 应用的测试策略

不适用场景

  • UI 设计(颜色、布局、动画等视觉相关)
  • 纯 Dart 服务端开发(虽然部分模式通用,但主要针对 Flutter)
  • 原生平台开发(iOS/Android 原生代码)
v1.0.0 2026-07-17
下载