命名规范
Table of Contents
1 命名规范
有人把代码的不利于阅读,归结于注释太少;可能这是一方面,但是好的命名,好的代码排版更加令人赏心悦目;好的命名规范,根本不需要注释来诠释,看到命名就能“顾名思义”;再说了注释密密麻麻的,看着就心烦;一般注释应该放到逻辑比较复杂的地方。
1.1 形成行业命名规范
刚开始进入游戏行业,策划经常提到一些专有名词,实在让人弄不懂,什么NPC啊,元宝啊侠客什么的。后来百度才知道是怎么回事,但是元宝这些词在系统里面对应什么单词,实在不知道。
如果一个新人不知,刚开始做系统,可能使用一些生僻的词汇,不是项目组默许的,那就对于一个已经熟谙项目的人来说,变得不可理喻。本来默认元宝是gold,可能你就是money。本来默认侠客是ranger的,你却用swordsman。
每个行业都有自己的词汇,将词汇罗列出来,对新人培训比较好,也花不了多长时间。
1.2 实现客户端和服务端的命名对接
我们系统是插件模型的,客户端与服务端对称的,客户端做一个子模块,服务端也做一个相同业务的子模块。这期间涉及到消息的对接,虽然对接的消息ID是一样的,但是我觉得还不够好。消息的名称、系统的名称、变量、函数名称也必须对接。
我常常遇到这样的问题:抽奖,服务端用Draw,客户端用Choujiang(本来用拼音就不好的);再比如竞技,服务端用Competitor,客户端用Fighting之类的。
1.3 禁用中文拼音命名
好多人喜欢用拼音,认为一个词,根本就不知道其英文意思;其实我们可以用词典,一查就知道了。
比如抽奖Draw,中文是Choujiang;相当于英文一个词,中文两个词;而且中文还没有分割词;而中文的拼音词,一般首个字母大写,即使两个词,也是连着的,一般用到人名,地名,比如Zhaojing Qu(有谁知道这三个汉字怎么写了),前面是名,后面是姓了;Gugong,一般都会这样。还有拼音的名称,声调有四种,容易混淆,而且拼音有时候不知道是那两种汉字的组合,存在歧义。
用中文命名,首先是不够简洁,其次不是那么一目了然。
1.4 充分使用前缀,后缀的命名规范
使用前缀或后缀能够对变量、类型和函数进行分类,这样一眼就看出其真正的功能和用途。
比如类型命名:
AckXXX 回复
MsgXXX 消息
MgrXXX 管理
ErrXXX 错误
比如变量命名:
p_xxx 指针
money_ 类成员变量
比如函数命名:
OnXXXX 消息
DoXXXX 处理消息的函数
GetXXX 获取
SetXXX 设置