命名风格
强制类型
- 不可以用
_
或者$
开始或者结束 - 严禁使用拼音和英文混写
- 类名使用UpperCamelCase风格
- 方法名,参数名,成员变量,局部变量都统一使用lowerCamelCase风格,遵循驼峰形式
- 常量命名全部大写,单词间用下划线隔开
- 抽象类命名使用Abstract或Base开头;异常类使用Exception结尾;测试类命名以测试的类名开始,Test结尾
- 类型与中括号间无空格相连定义数组
- POJO类中布尔类型的变量都不要加is前缀,因为框架解析可能会出现错误
- 包名统一使用小写,点分隔符间只有一个单词
- 包名使用单数形式
- 类名如果有附属含义,类名可用复数形式
- 杜绝不规范的缩写
- 对于Service和Dao类,基于SOA的理念,暴露出来的服务一定是接口,内部的实现类用Impl后缀与接口区别
推荐类型
- 为了代码自解释,自定义编程元素命名尽量使用完整的单词组合来表达意思
- 如果模块,接口,类方法使用了设计模式,应尽量命名提现出具体模式
- 接口类方法和属性不要加修饰符号
public
也不要加,并且加上有效的Javadoc注释 - 尽量不要在接口里面定义变量,如果一定要定义,必须是与接口方法相关的,并且是整个应用的基础常量
- 如果是形容能力的接口名称,取对应的形容词为接口名(通常为-able的形式)
参考类型
- 枚举类名建议带上Enum后缀,枚举成员名称需要全大写,单词间用下划线隔开
- 各层命名规约:
1)Service/Dao层
获取单个对象的方法用get
做前缀
获取多个对象的方法用list
做前缀
获取统计值的方法用count
做前缀
插入的方法用save/insert
作为前缀
删除的方法用remove/delete
作为前缀
修改的方法用updata
作为前缀
2)领域模型不了解。。。
常量定义
强制类型
- 不允许任何魔法值(未经预先定义的常量)直接出现在代码中
- long和Long初始化赋值时,使用大写的L,不能是小写的l,小写的容易和1混淆
推荐类型
- 不要使用一个常量类维护所有的常量,要按常量功能进行归类,分开维护(如:缓存相关的放在CacheConsts中,配置放在ConfigConsts中)
- 常量的复用层次5层:跨应用共享常量,应用内共享常量,子工程内共享常量,包内共享常量,类内共享常量
1)跨应用共享常量,在二方库的constant中
2)应用内共享常量,在一方库,子模块中constant中
3)子工程内部共享常量,在当前子工程的constant中
4)包内共享常量,当前包下单独的constant目录下
5)类内共享常量,直接在类的内部private static final定义 - 如果变量值在一个范围内变化,则用enum类型来定义