开发规范


# 一. 项目结构

# 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. 变量注释:

在变量后面, //注释该变量含义