某游戏服务器编码规范
1.数据库命名:
a) 表名:
i. 全小写,下划线连接,例子 boss_data
ii. 尽可能的减少命名冗余, 比如 boss_data 中的data其实都没有多大必要
b) 字段名:
i. 全小写,下划线连接 比如fighter_id
ii. 尽可能减少命名冗余 比如某张表的表名叫:fighter 那么字段名就不要叫做
fighter_name 而是 name
iii. 所有的用户id统一用uname命名, 而且通常以uname作为主键
iv. 尽可能使用uname 作为主键, 或者使用 uname + xxx 作为联合组件, 作用是
为了减轻合服时的负担, 如果实在是有特殊需求, 或者这个表在合服时并不那
么重要(可清空的表, 比如日志表), 那么可以使用其他的字段作为主键
c) 数据库名: 即项目名, 全小写, 下划线连接
2.Java命名:
a) 类名大写开头,驼峰标识
b) 字段名/局部变量名 小写开头,驼峰标识
c)
名小写开头,驼峰标识
d) 常量统一定义到D.java中, 全大写, 下划线连接
e) 包名全小写,尽可能只有一个单词
f) 所有的接口命名尽可能单纯, 不以I开头, 比如战士接口, 就叫做Fighter g) 所有的抽象类, 全部为:Abstract+接口名 比如AbstractFighter h) 所有的实现类, 全部为:接口名+Impl 比如FighterImpl HeroImpl
3.Java 规范(pvp模块为例), 这些规范的好处是可以通过
Ctrl + Shift + R 快速定为到对应的类, 请严格遵守:
a) 每个独立的模块, 都在cn.mxz下面单独建立一个包, 这个包的名字即为模块名字,
比如pvp, pvp下面的子包请自行划定
b) 每个模块一个工厂, 比如PvpFactory
c) 每个模块尽可能有一个: 模块名+Player接口, 比如:PvpPlayer外层可通过
PvpPlayer player = PvpFactory.getPlayer(String uname); 获得相应的模块主要对象,
这一条并不必须遵守, 根据实际情况进行调整
d) 每个模块分层结构:
i. Service 层:负责接受客户端请求, 调用业务逻辑, 封包, 反馈客户端请求(对应
的Java类的类名为:PvpService, 该类通过代码生成器, 自动生成)
ii. 通信层:
1. 业务逻辑层对象 --> 通信层对象的Adaptor: 针对服务器的每个返回值
类型(PvpService.java 中的每个方法的返回值, 基本类型除外
Integer,String...), 都必须有一个用户自定义的Builder,比如某个方法的返
回值类型为PvpPlayerPro, 那么就必须存在一个PvpPlayerBuilder.java,
PvpPlayerBuilder中得有一个build方法, 传入一个PvpPlayer对象, 返回
PvpPlayerPro对象
iii. 业务逻辑层
1. 请自定义
iv. 数据库层
1. DAO层...自动生成
2. DTO层...自动生成
4.