Dart/Flutter Patterns
专为 Flutter 应用开发设计的技术模式助手。从代码结构、状态管理到导航、网络请求,提供一套成熟的开发模式和最佳实践,帮助你构建稳定、高效、可维护的 Flutter 应用。
这个技能能帮你做什么
如果你在用 Flutter 开发应用,这个技能能帮你解决开发中常见的架构问题。它不提供具体的 UI 设计建议,而是告诉你代码该怎么组织、数据该怎么流、各个模块该怎么协作,让应用从"能跑"变成"好维护"。
简单说,它能帮你:
- 组织代码 —— 怎么拆分模块、怎么管理依赖,让项目结构清晰
- 管理状态 —— 页面间怎么共享数据、状态变化时怎么更新界面
- 处理异步 —— 网络请求、本地存储等异步操作怎么写最安全
- 安全编码 —— 空安全、类型安全怎么处理,避免运行时崩溃
- 测试代码 —— 怎么给 Flutter 应用写测试,确保功能稳定
什么时候用
项目启动时 —— 先确定技术方案和代码结构,避免后期大规模重构
遇到架构问题时 —— 比如"这个页面状态该放哪里?""网络请求失败怎么处理?"
技术选型时 —— 比如状态管理用 BLoC 还是 Riverpod?路由用 GoRouter 还是 Navigator?
代码审查时 —— 检查代码是否符合最佳实践,有没有潜在问题
性能优化时 —— 页面卡顿?重建太频繁?它会告诉你怎么优化
主要覆盖哪些场景
- 空安全处理
- 怎么避免空指针异常
- 空值该怎么优雅处理
- 模式匹配让代码更安全
- 状态管理
- BLoC/Cubit:适合复杂业务逻辑,通过事件驱动状态变化
- Riverpod:更灵活的状态管理,支持依赖注入和自动刷新
- Provider:经典方案,简单场景的首选
- 导航管理
- GoRouter:声明式路由,支持深度链接和路由守卫
- 根据登录状态自动跳转(未登录去登录页,已登录去首页)
- 网络请求
- Dio 网络库的配置和最佳实践
- 自动添加认证 token
- 请求失败时的重试和错误处理
- 错误处理
- 全局异常捕获,统一处理未捕获的错误
- 自定义错误页面,提升用户体验
- 错误上报,帮助开发者及时发现线上问题
- 性能优化
const关键字的使用,减少不必要的重建- 合理拆分 Widget,局部刷新
- 异步操作的正确写法,避免内存泄漏
怎么用
搭建项目时 —— 问它"Flutter 项目怎么组织目录结构?",它会给你推荐方案
选择技术方案时 —— 问它"BLoC 和 Riverpod 有什么区别?我该选哪个?"
写代码时 —— 不确定某个功能怎么实现最规范?它会给你最佳实践示例
排查问题时 —— 应用崩溃或卡顿了?它会帮你分析可能的原因
核心原则
做 Flutter 开发时,记住这几条原则:
- 优先使用不可变数据 —— 数据一旦创建就不修改,而是通过创建新对象来更新
- 小 Widget 优于大 Widget —— 把大文件拆成小组件,方便复用和维护
- 局部刷新优于全局刷新 —— 只更新变化的部分,不要整个页面重建
- 异步操作要 guard —— 等完网络请求后,检查 Widget 是否还在页面上
- 测试驱动 —— 写代码前先想怎么测,测试覆盖核心业务逻辑
适用场景
- Flutter 应用的整体架构设计
- 状态管理方案的选择和实现
- 网络层和错误处理的设计
- 导航和路由管理
- 代码审查和性能优化
- Flutter 应用的测试策略
不适用场景
- UI 设计(颜色、布局、动画等视觉相关)
- 纯 Dart 服务端开发(虽然部分模式通用,但主要针对 Flutter)
- 原生平台开发(iOS/Android 原生代码)
v1.0.0
2026-07-17
下载