开发规范
# 一. 项目结构
# 1. res
用于存放 不需要动态加载(代码创建) 的资源。
存放在 resources
中的资源,每个资源都会生成 uuid
;打包后,所有的 uuid
会存放在src/settings.js
文件中,resources
目录中资源越多,settings.js
文件就越大,影响加载速度。
# 2. resources
用于存放 需要动态加载(代码创建) 的资源。多用于存放:预制件、配置表、音效等等。
# 3. scene
用于存放 场景 。
# 4. script
用于存放 代码 。
# Start
start 场景对应脚本,处理 loading 逻辑,初始化 Model,工具类等等。
# Facade
- 存放 项目 基础配置信息(版本信息、游戏 id 等等)
- 存放 全局变量;
- 存放 玩家属性对应关系;
# common:
工具类文件夹。
脚本 | 功能 |
---|---|
ActionManager | 常用动作管理类(后期要优化成,在编译器中直接选择动作类型) |
AudioManager | 音效管理类, 处理音效、背景音乐 |
EnumManager | 枚举类,便于理解代码 |
InformManager | 通知定义类, 避免通知名称重复 |
ButtonBlocker | 按钮扩展类:通用按钮点击音效; 按钮点击延迟 |
Ease | 滚动图片数字类 |
Utils | 常用方法类, (截取字符串、时间戳转换等等功能) |
List... | ListView 组件优化类, 处理 item 重复创建问题 |
... | 其他功能 |
# lib:
用于存放 第三方的 脚本文件。
# net:
网络请求相关代码。
脚本 | 功能 |
---|---|
Net | 外部调用此类方法,内部处理请求逻辑 |
HttpConnector | mggf 相关请求方法、数据上报等功能 |
GameConnector | 游戏服连接相关方法 |
Message_xxx | 游戏服接口 |
Response | 游戏服接口 |
# pop:
处理项目内所有弹框逻辑,大部分功能都是通过预制件实现,通过 pop 类,实现界面弹出、关闭逻辑。
脚本 | 功能 |
---|---|
Pop | 预制件管理类 |
AlertTip | 确认提示框 |
FloatTip | 飘字提示框 |
LoadingTip | 菊花转提示框 |
.... | 游戏内部功能相关提示框 |
注意: 预制件的 ui 处理,尽量放在 Pop 的viewDidAppear
方法中处理,避免 pop 界面出现卡顿问题。
# player:
处理玩家登录逻辑,以及本地数据管理等等。
脚本 | 功能 |
---|---|
LoginModel | 登录逻辑处理 |
PlayerModel | 玩家属性、道具等信息处理 |
ArchiveData | 本地数据管理类 |
FuncModel | 功能开关管理类 |
BannerModel | 全局处理 banner 弹出逻辑 |
InteractionModel | 全局处理 插屏 弹出逻辑 |
# platform:
平台相关封装功能,绝大部分功能采用回调形式通知游戏结果。
注意: 增加方法时,要在各个平台定义(即使该平台没有此功能,也要实现一个空方法,避免出错)
# act_xxx
具体功能模块(比如签到), 一个功能模块的代码要放在一个文件夹,便于查找;
脚本 | 功能 |
---|---|
XxxxModel | 业务逻辑处理类:网络请求、数据处理等功能 |
XxxxView | UI 逻辑处理类:UI 布局,动画效果、点击事件等等 |
XxxxItem | View 内部 Item |
注意: 当有刷新界面事件时,尽量不要在 Item 中做事件监听;要在 View 中监听,然后找 对应 Item 做相关逻辑;避免重复监听Item 重复监听。
# 二. 命名规则
遵循 驼峰命名规则
, 尽量简短易懂, 避免出现错误拼写。
# 1. 变量:
采用 javaScript ES6
标准,( 变量定义不用 var、使用 let);
# 常用命名:
含义 | 命名 |
---|---|
次数 | xxxNum |
时间 | xxxTime |
数组 | xxxList、xxxArr。。。 |
图片 | xxxSpr |
item | xxxItem |
Label | xxxL |
Button | xxxBtn |
...... | ...... |
# 1. 方法:
含义 | 命名 |
---|---|
初始化界面布局 | initUILayout |
初始化数据 | initXXXData |
初始化监听 | initListener |
请求 | requestXXX |
处理网络请求 | dealXXX |
获取信息 | getXXXInfo |
检测 | checkXXX |
计算 | calculateXXX |
接收监听 | onXXX |
点击事件 | onClickXXX |
做动画 | startXXXAction |
# 三. 注释
# 1. 类注释:
描述改类,主要处理什么逻辑、功能点等等。
# 2. 模块注释:
模块 | 含义 |
---|---|
System Methods | 系统方法(onLoad、update等等) |
Init | 初始化操作 |
Notification | 接收事件监听方法 |
Methods | 一些内部逻辑代码 |
OnClick | 点击事件 |
# 3. 方法注释:
标清楚 每个参数的含义(尽量标清变量类型),返回值等等。
# 4. 变量注释:
在变量后面, //
注释该变量含义
← OpenGL相关知识 前端屏幕适配规范 →