一,编程规约
1.命名规范
不能以美元或下划线符号开始或结束;
不能有英文和拼音混合;
类–UpperCameCase, DO/BO/DTO/VO/AO/PO/UID等除外;
方法名/参数名/成员变量名使用lowerCamelCase;
常量命名全部大写,单词间下划线隔开;
抽象类命名使用Abstract或Base开头;
异常类命名使用Exception结尾;测试类命名以要测试的类的名称开始,以Test结尾;
POJO类中布尔类型的变量,都不要加is前缀,否则部分框架解析会引起序列化错误;
包名统一使用小写,点分隔符之间有且仅有一个自然语义的英文单词,包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式;
杜绝不规范缩写;尽量使用完整单词组合表达其意;
枚举以Enum后缀,成员名称须全部大写;
不允许使用任何魔法值(即未经预先定义的常量)直接出现在代码中;
如:String key=“wanghuijie” + name;
在Long或long赋值时,数值后使用大写的L。小写容易和数字1造成混淆;
if/for/while/switch/do等保留字与括号之间必须加空格;
任何二目,三目运算符左右两边都要加 一个空格;
采用 4个空格缩进,禁止使用tab字符;
避免通过一个类的对象引用访问此类的警惕变量或静态方法,无畏增加编译器解析成本,直接用类名访问即可;
相同参数类型,相同业务含义,才可以使用java的可变参数,避免使用Object,可变参数必须放置在参数列表最后。
例如:public void listUsers(String type,Long…ids){}
外部正在调用或者二方库依赖的接口,不允许修改方法签名,避免对接口调用方产生影响,接口过期必须加@Deprecated注解,并说明采用的新接口是什么。
Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用此方法;
所有的相同类型的包装类对象之间值的比较,全部使用equals方法;
定义DO/DTO/VO等POJO类时,不要设置任何属性默认值。
序列化类新增属性时,不要修改serialVersionUID字段,避免反序列化失败;如果完全不兼容升级,避免反序列化混乱,要修改该值;
构造方法里禁止加入任何业务逻辑,如果有初始化逻辑,放到init方法中;
POJO类必须写toString方法,使用IDE:source-generate toString时,如果继承类另一个POJO类,注意在前面加一下super.toString;
循环体内字符串的连接方式,使用StringBuilder的append;
83 代码规范
最新推荐文章于 2024-05-06 23:18:53 发布