1、数据库存储过程
1.1 例子 PrGs_GameDB_xxx
Pr: Procedure(存储过程)
Gs: GameServer(游戏服的数据库)
GameDB: 是哪里调用的这个存储过程,比如你是从web那边调的就改成WebDB, 从中心服调用的就CenterDB
xxx: 就是具体这个存储过程的意思
1.2 表命名(暂时没有规范待更新)
2、c++ 代码规范
2.1 例子 void TestFunction(IN int i32Name){....}
2.1.1 函数名开头大写然后根据功能自己起名字但有一下几点需要注意
当收到前端发来的消息对应的处理函数时用这样的 void OnRecvClXXX(){}就是当接收到来自哪里的函数时做的一些操作
客户端来的消息 void OnRecvClXXX(){}
DB服来的消息 void OnRecvDbXXX(){}
网关服来的消息 void OnRecvGateXXX(){}
事件处理 void OnRecvEventXXX(){}
以此类推
2.1.2 参数分为传入参数 和传出参数 还有即是传入又是传出参数
传入参数一般前都加一个IN 这个IN是个宏定义 #define IN, 如果类型是某个结构体的话就用const 引用例如:
void TestFunction(IN const 结构体& a){}
传出参数一般前都加一个OUT 宏定义 #define OUT 一般都是用引用的,这里不多做介绍
即是传入又是传出INOUT, 例如我穿了一个数据的指针进去, 第二个参数我穿了数组的数量, 但是出来的时候这个数量改变了,那么这个传的数量就是即是传入又是传出
2.1.3 类名规范
基类一般前面都加个I 例如 IClientSession, 而继承它的类或者无继承关系的类前面加个C 例如 CClientSession
2.1.4 结构体命名时以T开头 , 声明的对象以小写t开头
2.1.5 枚举以大写EN开头
2.1.6 类成员变量命名以m_TypeName模式命名, 级 m_开头 + 变量类型例如int 就是i32开头, byte 以by开头之类的, name就是表明这个变量的用途 举例如下:
int m_i32Member;
byte m_byFlag;
ushort m_uTest;
2.3 protobuf命名的一些规范
2.3.1 消息码命名格式 MSG_来源及去处_模块名_协议内容
msg开头 代表这是一条消息码
来源及去处代表从哪里发发到哪里去
模块名表示这个消息属于哪个模块
协议内容用来描述这个消息要完成的功能
举例:
MSG_CL_ACCOUNT_LOGIN
CL 意思是 Client-> Logic 客户端发现逻辑服 ACCOUNT 意思是属于账号这个模块的 LOGIN 代表是登录游戏的功能
2.3.2 消息体 T + 消息码的结构
TMsgCLAccountLogin
里面的成员都小写以 _ 划分开