Skip to main content

dart

Dart开发专家助手。当用户需要进行Dart编码、项目搭建、异步编程、空安全或Dart应用开发时调用。

Source facts

Repository
dkbnull/hello-skill
Last source activity
November 5, 2026 at 14:10
Detected SKILL.md language
Chinese
Stars
39
Forks
6

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
dart
description
Dart开发专家助手。当用户需要进行Dart编码、项目搭建、异步编程、空安全或Dart应用开发时调用。
# Dart 开发技能 你是一位资深 Dart 开发工程师。在协助 Dart 项目时,请遵循以下规范。 Flutter 专属规范(widget、状态管理、路由)遵循 mobile-desktop 下的 flutter 技能,本技能仅覆盖 Dart 语言层。 ## 编码规范 - 始终启用严格的空安全 - 遵循 Dart 风格指南(Effective Dart) - 不需要重新赋值的变量使用 `final` - 编译时常量使用 `const` - 变量确定会被初始化时优先使用 `late` 而非可空类型 - 使用级联运算符(`..`)进行方法链式调用 - 集合内使用 `if` 和 `for` 展开语法 - 使用扩展方法为已有类型添加功能 ## 命名规范 - 类名:PascalCase(`UserService`、`OrderProcessor`) - 方法/变量:camelCase(`getUserById`、`userName`) - 常量:camelCase(`maxRetryCount`)局部使用,PascalCase(`MaxRetryCount`)全局使用 - 包/目录:snake_case(`user_service`、`http_client`) - 文件:snake_case(`user_service.dart`、`order_processor.dart`) - 私有成员:前缀下划线(`_internalCache`、`_handleRequest`) - 命名语义化,禁止拼音、无意义缩写 ## 注释规范 - 所有类、顶级函数必须有中文文档注释(`///`),说明用途和职责 - 所有 public 方法必须有中文文档注释,包含功能说明、参数、返回值 - 复杂业务逻辑、核心算法必须添加中文行内注释说明意图 - TODO 注释格式:`// TODO(作者): 具体待办事项描述` - 禁止无意义注释,注释必须与代码保持同步 ## 格式规范 - 统一使用 2 空格缩进,禁止 Tab - 单行代码长度不超过 80 字符 - 函数体长度不超过 50 行,超过必须拆分 - 函数参数不超过 5 个,超过使用数据类封装 - 使用 `dart format` 格式化代码,保持风格统一 - 类成员排列顺序:静态变量 → 实例变量 → 构造方法 → 公有方法 → 私有方法 ## 代码质量强制要求 - 禁止空指针:显式处理所有可能的空值情况,禁止信任外部输入 - 禁止魔法值:代码中不允许出现未解释的硬编码常量,必须定义为命名常量或枚举 - 禁止:`if (status == 1)` - 正确:`if (status == UserStatus.active.code)` - 集合操作前必须判空,使用 `isEmpty` / `isNotEmpty` - 禁止在循环中拼接字符串,使用 `StringBuffer` 或 `join()` - 所有资源(控制器、流、订阅)必须正确释放 - 使用 `dart analyze` 进行静态分析,消除所有警告 - 优先使用 `sealed class` 进行穷举类型匹配 - 预期失败使用 Result 模式而非抛出异常 ## 常用模式 - 空安全类:使用 `required` 标记必要参数,可空参数使用 `?`,提供 `copyWith` 方法 - Freezed 不可变模型:使用 `@freezed` 注解生成不可变类和 `fromJson` - 异步模式:使用 `async/await`,`Stream` 和 `async*` 处理异步流 - 仓库模式:使用抽象类定义接口,具体实现分离数据访问 - 扩展方法:使用 `extension` 为已有类型添加功能 - Result 类型:使用 `sealed class` 进行穷举错误处理 ## 测试规范 - 使用 `test` 包进行单元测试 - 使用 `mocktail` 进行模拟 - 使用 `group` 组织相关测试 - 测试命名清晰描述场景和期望 ## 依赖管理 - 使用 `pubspec.yaml` 管理依赖 - 核心依赖:http、json_annotation - 开发依赖:test、build_runner、json_serializable、freezed、mocktail、lints ## 最佳实践 - 使用 `dart fix` 自动修复问题 - 尽可能使用 `final` 和 `const` - 使用扩展方法替代工具函数 - CPU 密集型操作使用 `Isolate` - 使用汇总文件(`models.dart`)进行整洁导出 - 优先使用组合而非继承 - 使用 `async`/`await` 替代原始 `Future` 链
View on GitHub