在刚到公司时,新人总会遇到一些编码上的规范问题,本人也是亲身经历被带我师兄嫌弃。所以这里我将最近总结的一些编码规约在这里总结分享给大家。
本文中的一些规范来自自己平时的积累与Alibaba开发手册,希望能帮到大家。
一、命名规范
-
代码命名不能以下划线和美元符号开始与结束
Ce: _name / $name / name_
-
类名规范:大驼峰命名法(除一些特殊情况外:DO/DTO/VO/PO….)
Eg: UserCode / UserDO / XmlService / UserDTO Ce: usercode / userDo / XMLServic
-
方法名、参数名、成员变量、局部变量命名规范:小驼峰命名
Ce: loValue / getHttpClient( )
-
常量命名:全部大写,单词间使用下划线隔开
Eg: CHCHE_EXPIREDP_TIME
-
抽象类命名:使用Abstract或Base开头;异常类使用Exception结尾
-
包名统一小写:报名统一使用单数形式,但是如果有复数含义,类名可以使用复数形式
包名:com.alibaba.util 类名:messageUtils
-
避免在子父类的成员变量之间,或者不同的局部变量之间采用相同的命名
-
常量与变量的命名时,表示类型的名词放在词尾,以便提升辨识度
Eg: startTime / workQueue / TERMINATED_THREAD_COUNT
二、常量定义
-
在long或者Long赋值后使用大写的L,不能是小写的l,容易与数字混淆
Eg: Long a = 2l; 写的不知道是21 还是 Long类型的l。
-
不要用一个常量类来维护所有的常量,要按照功能进行归类:否则不便于维护,不利于理解。
Eg: 缓存相关常量类放在CacheConsts ; 系统配置相关放在类ConfigConsts
-
常量的复用测层次(五层):跨应用共享常量、应用内存共享常量、子工程内共享常量、包内共享常量、类内共享常量
Eg: 1. 子工程内部共享变量 / 包内共享常量:在当前子工程的constant 2. 类内共享常量直接在类内部private static final定义
三、代码格式
-
如果大括号为空,那么则简介的写成{}即可,大括号中间无需换行和空格
-
左小括号与有小括号要相邻字符
Ce:if(空格a == b空格)
-
If / for /while / switch / do等保留字与括号之间都必须加空格
-
任何二目、三目运算符的左右两边都需要加一个空格
Eg: 赋值运算符、逻辑运算符&&
-
四个空格缩进代码(一般在idea中会table自动设置四个空格)
-
双斜线注释与注释内容之间有且仅有一个空格
Eg: // 注释内容
-
强制类型转化时,右括号与强制类型转化之间不需要任何空格隔开
Eg: int a = 100000L; int b = (int)a + 2;
-
单行字符不能超过120个
第二行相对第一行缩进4个空格、连运算符与下文一起换行
调用符号与下文一起换行、方法调用中的多个参数需要换行StringBuilder str = new StringBuilder( ); // 不要在括号前换行 Str.append("are").append("you")……append ("ok"); // 逗号后才是换行处 Method(arg1, arg2…… ,argX);
-
传递参数时,多个参数逗号后边必须加空格
Eg: method(args1, args2, args3);