Java 代码风格
小驼峰:首字母小写的lowerCamelCase
大驼峰:首字母大写的UpperCamelCade
Part 1 命名规约
1、包
包名统一使用小写,点分隔符之间有且仅有一个自然语义的英文单词。
2、类
1)抽象类命名使用 Abstract
或 Base
开头;
2)异常类命名使用 Exception
结尾;
3)测试类命名以它要测试的类名开始,以 Test
结尾。
3、数组
类型与中括号紧挨相连来定义数组。
4、枚举
枚举类名带上 Enum
后缀,枚举成员需要全大写,单词间用下划线隔开。
注:枚举类型几乎是固定不变的全局常量,使用频率高、范围广、所以枚举常量都需要添加清晰的注释。
5、常量
1)全局常量
定义:全局常量是指类的公开静态属性,使用public static final修饰;
2)类内常量
定义:类内常量是私有静态属性,使用private static final修饰;
注:采用字母全部大写、单词之间加下划线的方式
3)局部常量
*方法常量:在方法或代码块内定义的常量
*参数常量:在定义形式参数时,增加final标识,表示此参数值不能被修改
注:采用小驼峰形式
6、变量
采用小驼峰
注:在POJO类中,针对布尔型变量,命名不要加is前缀。但在数据库建表中,推荐表达是与否的值采用is_xxx的命名方式
Part 2 代码展示风格
1、缩进
推荐使用4个空格缩进,禁止使用Tab键
大多数IDE默认使用4个空格缩进,其中有很多IDE工具提供Tab键的快速转换设置
2、空格
(1)任何二目、三目运算符的左右两边都必须加一个空格。int i = 0
; :
+
…等等
(2)注释的双斜线与注释内容之间有且仅有一个空格。// 有且仅有一个空格
(3)方法参数在定义和传入时,多个参数逗号后面必须加上空格。method(int 参数1, int 参数2, int 参数3)
(4)没有必要增加若干空格使变量的赋值等号与上一行对应位置的等号对齐。
(5)如果是大括号内为空,则简洁地写成{}即可,大括号中间无须换行和空格。catch (Exception e){}
(6)左右小括号与括号内部的相邻字符之间不要出现空格。if (i == 0) {}
(7)左大括号前需要加空格。else {}
注:不太推荐空大括号的代码出现
3、换行与高度
1、换行
约定单行字符数不超过120个,约定单个方法的总行数不超过80行,超出则需要换行,换行时遵循如下规则:
(1)第二行相对第一行缩进 4 个空格,从第三行开始,不再继续缩进。
(2)运算符与下文一起换行。
(3)方法调用的点符号.
与下文一起换行,在逗号,
后换行。
(4)方法调用中的多个参数需要换行时,在逗号,
后换行。
(5)在括号前不要换行。
注意:不要把不同层次的逻辑写在一个大方法体里,应该将次要逻辑抽取为独立方法,将共性逻辑抽取成为共性方法(如参数效验、权限判断等),便于复用和维护,使主干代码逻辑更加清晰。
高内聚,低耦合
2、控制语句
(1)在if、else、for、while、do-while
等语句中必须使用大括号。即使只有一行代码。也需要加上大括号。
(2)在条件表达式中不允许有赋值操作,也不允许在判断表达式中出现复杂的逻辑组合。可以将复杂的逻辑结构赋值给一个具有业务 含义的布尔型变量。
(3)多层嵌套不能超过 3 层。
(4)避免采用取反逻辑运算符。如使用 if(x < 628),而不使用 if(!(x >= 628))。反逻辑不便于理解,尽量使用正向逻辑。
Part 3 代码注释
1、注释三要素
(1)Nothing is strange 提倡写注释,然后才是把注释写得精简。
(2)Less is more 代码中的注释一定是精华中的精华。
即 好的代码是自解释的,准确的变量命名加上合理的代码逻辑,无需过多的说明就足以让其他工程师;理解代码的功能。
(3)Advance with the times 任何对代码的修改,都应该同时修改注释。即同步,或者说与时俱进,避免误导后续开发者。
2、注释格式
(1)Javadoc 规范
类、类属性、类方法,此外还包括枚举的注释必须使用(/** */)的格式。
注:枚举注释
*枚举过于特殊,它的代码极为稳定。如果定义和使用出现错误,通常影响较大
*注释的内容不仅限于解释属性值的含义,还可以包含注意事项、业务逻辑。
*枚举类的删除或者修改都存在很大的风险
。不可直接删除过时的属性,需要标注过时
,同时注释说明过时的逻辑考虑和业务背景。
【注:以上摘选自《码处高效Java开发手册》,该文章仅供学习观看,致力于掌握更好的代码风格,如果需要请购买该书,支持正版。该书作者孤尽、鸣莎(以上为花名)。】