You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AdLike2048/.cursor/rules/dev-standards.mdc

43 lines
2.5 KiB

3 weeks ago
---
description: 项目开发规范——AI 生成代码强制标准(OOP、注释、无兜底、性能、资源、动画)
alwaysApply: true
---
# 开发规范(生成代码必遵)
完整版:`docs/开发规范.md`。生成或修改 TS 代码前须全局思考,查阅 `docs/项目说明.md` 与相关 `需求-*` / `方案-*` 文档。
## 素养与范围
- 以资深工程师标准:架构、可复用、可扩展、可靠、安全;**临时修 Bug 也须全局评估**。
- 面向对象:功能在 **类/接口** 中;**禁止新增业务全局函数**。
- **禁止屎山**;代码简洁。不随意新增 TS 文件/变量;数据结构合并到类型文件。
- **禁止任何形式的静默兜底**;可 `warn` 暴露问题,不得猜默认值掩盖错误。
- **需求不明确必须问用户**;未授权不得自行发挥(通用惯例如特效细节除外);不得擅自改策划。
## 命名与注释
- 简化驼峰,名称简短易懂。
- **接口、类、枚举、每个枚举项、字段、函数** 必须有简洁 JSDoc。
- **框架代码**(`assets/mx/`)不写逐步逻辑注释。
## 函数与语法
- 函数 **参数不换行**(同一行写完形参列表)。
- **禁止在函数内定义函数**;回调/闭包改为 **类方法**,生命周期内注册/注销。
- 新代码 **禁止 Set/Map** 等小游戏不稳定结构;遵循 Cocos 推荐 ES 版本。
- **禁止** `[...map.keys/values/entries()]`、`[...map]`、`Array.from(map.keys())`:H5 构建会编成 `concat(iterator)`。用 `mapKeysToArray` / `mapValuesToArray` / `membershipToArray` / `forEach`。
- 引擎 API **严格按 Cocos Creator 官方文档**(本项目 3.8.8)。
## 性能、动画、资源、内存
- 考虑时间/空间复杂度;`update`/战斗 tick 热路径优化;**能分帧则分帧,能延迟则延迟**。
- **内存**:能复用则复用;对象池出池须 **完整重置状态**,归还无泄漏,不得因池化引入脏数据 Bug。
- 可释放的字段、引用、监听、定时器在生命周期结束时 **安全释放**;不得因过早释放引入崩溃。
- 动画(tween/插值/Spine/Animation):异步生命周期完整——停止、清除回调、`onDestroy` 取消;禁止销毁后仍执行回调。
- 资源:加载/持有/释放与 `BundleLifecycle`、`AssetService` 一致;校验 `isValid`;**禁止释放后仍渲染**;考虑断网与玩家异常操作。
## 记忆
- 不依赖单会话上下文;结合 `docs/` 与全项目架构做整体分析;架构决策写入 `docs/`。