跳至正文

Cocos Creator 中小型项目协作规范参考

一套完整的规范包含:代码规范、目录规范、协作流程、Code Review、自测标准、提交规范、禁止事项

目标:
不冲突、好维护、BUG少、迭代快


一、代码规范

1. 命名规范

  • 文件夹:小写 + 中横线 ui-commongame-battle
  • 脚本文件名:大驼峰 UIBag.tsLevelCtrl.ts
  • 类名:大驼峰 class UIBag extends BaseView
  • 变量/方法:小驼峰 userDataopenShop()
  • 常量:全大写+下划线 MAX_HPITEM_TYPE_COIN
  • 私有变量:开头加下划线 _updateView()_timer
  • 枚举enum ItemType { COIN, GEM }

2. TypeScript 规范

  • 必须开启严格模式:"strict": true
  • 禁止使用 any(必须指定类型)
  • 函数必须写返回值类型 function add(a:number):number {}
  • 禁止魔法数字(所有固定值写常量)
  • 接口/数据结构必须用 interface 定义

3. 引擎使用规范

  • 禁止使用 find() / getChildByName()
    节点全部在 @property 中拖拽绑定
  • 禁止场景上挂大量脚本
    功能统一走预制体 + 管理器
  • 禁止动态修改 layer
  • 禁止在 update 里写复杂逻辑、查找节点
  • 禁止大量 instantiate/destroy → 必须用对象池
  • 禁止跨模块直接引用 → 必须用事件/服务通信

4. 注释规范

  • 公共方法必须写注释(功能、参数、返回值)
  • 复杂逻辑块上方必须写注释
  • 枚举/常量必须注释含义
  • 不写废话注释,只写为什么这么做

二、目录结构规范

assets/
├── resources/        动态资源
├── scenes/           场景
├── prefabs/          预制体
├── script/
│   ├── base/         基类
│   ├── framework/    框架
│   ├── game/         游戏业务
│   ├── ui/           UI
│   ├── service/      单例服务
│   └── utils/        工具
├── atlas/            图集
├── audio/            音频
└── config/           配置表

规则

  • 不允许随意新建根目录
  • 不允许脚本乱放
  • 不允许一个脚本写多个功能

三、团队协作规范

1. 分支管理规范(Git)

  • main:正式发布分支
  • develop:开发主分支
  • feature/xxx:功能分支(每人一个)
  • bugfix/xxx:修复分支
  • hotfix/xxx:线上紧急修复

流程

  1. 从 develop 拉 feature
  2. 开发完成 → 提交 MR
  3. 通过 Review → 合并到 develop
  4. 测试稳定 → 合并到 main

2. 提交规范(Git Commit)

格式:类型: 内容
例:

  • feat: 新增背包界面
  • fix: 修复关卡失败不回弹BUG
  • opt: 优化对象池性能
  • refactor: 重构UI管理模块
  • docs: 补充注释

禁止修改 优化 完成 这种无意义提交

3. 冲突避免规范

  • 场景文件禁止多人同时编辑
    要改场景 → 通知负责人
  • 公共模块、基类、服务修改必须通知团队
  • 预制体独立维护,一人负责一个模块
  • 资源命名不能重复(用前缀区分:ui_bagicon_coin

四、Code Review 规范

1. 必须 Review 的内容

  • 新功能模块
  • 公共工具、基类
  • 复杂逻辑(战斗、数值、关卡、物理)
  • 性能相关代码
  • UI框架、管理器

2. Review 检查清单

  • 是否符合命名规范
  • 是否有 any、未处理异常
  • 是否有冗余代码、重复逻辑
  • 是否有内存泄漏(未取消监听、未清理计时器)
  • 是否有 find()getChildByName
  • 是否在 update 里做高耗操作
  • 资源是否正确释放
  • 异常是否捕获
  • 方法是否过长(超过 80 行必须拆分)
  • 是否有魔法数字、硬编码路径

3. Review 原则

  • 不通过不能合并
  • 问题必须标注清楚
  • 必须给出修改建议
  • 对事不对人

五、自测规范

1. 功能自测清单

  • 功能是否按需求完成
  • 边界值测试(0、空、最大值、负数)
  • 快速连续点击是否BUG
  • 重复打开关闭是否异常
  • 资源是否正确加载/释放
  • 异常情况是否有提示(网络失败、加载失败)

2. 性能自测

  • 打开界面是否卡顿
  • 大量实例化是否掉帧
  • DrawCall 是否合理
  • 内存是否持续上涨
  • 切换场景是否泄漏

3. 真机自测(必须)

  • 安卓/iOS 真机运行
  • 不同分辨率适配
  • 网络切换、弱网
  • 后台切回是否正常

4. 自测通过标准

  • 无报错
  • 无警告
  • 无内存泄漏
  • 无不规范代码
  • 功能完整稳定

六、脚本结构规范(统一格式,易读易维护)

@ccclass('UIBag')
export class UIBag extends BaseView {
    // 1. 属性节点
    @property(Node) itemContent: Node = null!;
    @property(Button) closeBtn: Button = null!;

    // 2. 变量
    private _itemList: ItemData[] = [];

    // 3. 生命周期
    onLoad() {}
    onEnable() {}
    onDisable() {}

    // 4. 公开方法
    public showView() {}

    // 5. 私有方法
    private _init() {}
    private _updateView() {}
}

七、绝对禁止的红线

  1. 禁止场景上挂大量脚本
  2. 禁止使用 find() 查找节点
  3. 禁止跨模块直接引用
  4. 禁止大量 instantiate/destroy
  5. 禁止在 update 写复杂逻辑
  6. 禁止硬编码、魔法数字
  7. 禁止不取消事件、不清理计时器
  8. 禁止脚本超过 300 行
  9. 禁止方法超过 80 行
  10. 禁止提交未自测代码

八、协作效率提升规则

  1. 接口先行
    先写接口/枚举/常量,再写实现
  2. 数据结构统一
    所有结构用 interface 定义
  3. 事件名统一管理
    全部写在 EventName.ts
  4. 路径统一管理
    全部写在 PathConst.ts
  5. 通用功能做成工具
    不重复造轮子
  6. 每日构建一次
    尽早发现问题
  7. 公共模块统一维护

标签:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注