首页 > 技术文章 > java编程规约

hy87 2017-08-02 23:54 原文

一、命名风格

1、代码中的命名不能以下划线和美元符号开始和结束。

2、代码中严禁使用拼音和英文混合的方式,更加不能使用中文。

3、类名必须使用驼峰形式(UpperCamelCase),一下例外:BO、DO、DTO。

4、方法名、参数名、成员变量名、局部变量名都统一使用lowerCamelCase。

5、常量名全部大写,各个单词之间用 _ 分开,比如:MAX_STOCK_COUNT。

6、抽象类命名必须以Abstract或者Base开头,异常类命名以Exception结尾,测试类以Test结尾。

7、中括号是数组类型的一部分,String[] args。

8、POJO中布尔类型的变量都不要加is,否则会引起序列化错误。

9、包名一律使用小写,点分符之间使用有自然语义的单词,不允许使用复数形式,类名可以使用复数形式。

10、杜绝完全不规范的简写,避免望文不知义。

11、如果使用了设计模式,要在类名中体现具体的设计模式,比如:OrderFactory/LoginProxy

12、枚举类名要以Enum结尾,枚举统一使用大写各个单词以下划线分开。

13、各层的命名规约:

A)Service、DAO层方法命名:

1)获取单个对象以get作为前缀;

2)获取多个对象以list作为前缀;

3)删除用remove所为前缀;

4)保存用save作为前缀;

5)更新用update作为前缀;

B)领域模型命名:

1)数据对象:xxxDO,xxx即为数据表名;

2)数据传输对象:xxxDTO,xxx为业务领域相关名称;

3)展示对象;xxxVO,xxx为网页的名称;

 

二、常量定义

1、不允许任何魔法值,直接出现在代码中,比如:“JRXJ”+xxx。

2、long赋初始值时必须用L结尾。

3、不要使用一个常量类维护所有常量,根据功能进行区分,比如缓存相关的用CacheConstant,系统相关的用ConfigConstant。

4、常量的复用层次:跨应用常量、应用内共享常量、子工程内共享常量、包内共享常量、类内共享常量,

跨应用共享常量:保存在二方库中,通常是client jar;

应用内共享常量:保存在一方库中,通常在modules的constant目录下面;

子工程内共享常量:在子工程的constant目录下面;

包内共享常量:当前包单独的constant目录下面;

类内共享常量:直接在类内部 private static final ...

5、如果一个变量在一定的范围内变化,而且带有一定的延生属性,那么使用枚举。

 

三、代码格式

1、缩进采用4空格,禁止使用tab。

2、单行字符个数不超过120。

3、方法参数在定义和传入时,多个参数逗号后面要加空格。

 

四 、OOP规约

1、避免通过类对象的引用访问静态的变量和方法,无谓增加编译器负担。

2、所有覆写方法必须加上@Override。

3、相同参数类型,相同业务含义才可以使用java可变参数。

4、接口过时时必须加上@Deprecated注解。

5、不要使用已经明确提示过时的类和方法。

6、所有相同类型的包装类之间使用equals比较大小,比如:-127~128的Integer类型可以用==比较,但是超过这个范围必须使用equals。

7、关于基本数据类型和包装数据类型使用标准如下:

1)所有的POJO类必须使用包装数据类型。

2)RPC(远程过程调用)方法返回值和参数必须使用包装类型。

3)所有的局部变量使用基本数据类型。

任何NPE问题,或者入库检查都是由使用者来保证。

8、定义DO、DTO、VO、POJO类时不要给任何属性赋予初始值。

9、序列化类新增属性时不要修改serialVersionUID字段的值,避免反序列失败,如果完全不兼容升级,避免反序列化混乱请修改这个字段的值。

10、构造方法中,禁止加入任何业务逻辑,如果有初始化逻辑,请放在init方法里面。

11、POJO类必须写toString方法,如果继承了一个POJO类,要加上super.toString()。这样在抛出异常时直接调用toString便于排查问题。

12、一个类有多个构造方法或者多个同名的方法,那么这些方法应该按顺序放在一起。

13、类里面方法定义的顺序:公有方法、保护方法、私有方法、setter,getter方法,在setter,getter方法中不要增加业务逻辑增加排查问题难度。

14、慎用Object的clone方法,因为他是浅层拷贝,如果要使用必须重写实现属性对象的拷贝。

15、

 

推荐阅读