一、代码规范
1.命名规范
-
字母+数字+下划线+dollar符($)组合的方式
不能以数字或者美元符号或者下划线开头;
不能以美元符号或者下划线结束 -
驼峰式命名
方法名、变量名、参数名都使用lowerCamelCase驼峰式命名
-
严禁使用拼音与英文混合的形式,更不能直接使用中文
-
常量名称全部大写,单词用下划线隔开,力求语义完整
MAX_STOCK_COUNT
-
抽象类命名使用Abstract或Base开头;异常类命名以Exception结尾;测试类以要测试的类名称开始,以Test结尾
BasePerson
-
数组使用int[] array形式
-
POJO类中任何布尔类型的变量不要加is前缀,不然可能引起序列化错误
-
规范化缩写
如Config->Conf -
大括号要写规范
1.(空格){}
2.(空格){
// …内容
} -
小括号 if / else / for / while / do 等与括号之间必须加空格
if (1 == 2)
-
注释的双斜线与注释内容之间有且仅有一个空格
-
方法参数在定义和传入时,多个参数逗号后边必须加空格
method(args1, args2, args3)
2.开发标准-OOP规约
-
直接使用类名访问静态变量或者方法
-
所有重写的方法都必须使用@Override注释
-
不要使用过时的类和方法
-
使用equals方法时,应该让常量或者确定值来调用equals。否则容易
抛空指针异常
如:“test”.equals(object)
-
整型包装类对象之间
值的比较
,全部使用equals方法比较;
-
属性类型要与数据库字段类型相匹配
如:数据库字段的numeric必须与类属性的Long类型相对应
-
3.开发标准-日期时间
- 正确的日期格式:“yyyy-MM-dd HH:mm:ss”
- 获取当前毫秒数
System.currentTimeMillis();
4.开发标准-集合处理
-
集合判空 isEmpty();
-
hashCode和equals处理
-
边遍历边移除(add/remove) Collection 中的元素使用迭代器而不是foreach
边遍历边修改 Collection 的唯一正确方式是使用 Iterator.remove() 方法,如下:
并发操作时,也要对Iterator加锁Iterator<Integer> it = list.iterator(); while(it.hasNext()){ // do something it.remove(); }
一种最常见的错误代码如下:
for(Integer i : list){ list.remove(i) } //运行以上错误代码会报 ConcurrentModificationException 异常。 这是因为当使用 foreach(for(Integer i : list)) 语句时, 会自动生成一个iterator 来遍历该 list,但同时该 list 正在被 Iterator.remove() 修改。 Java 一般不允许一个线程在遍历 Collection 时另一个线程修改它。
5.开发标准-控制语句
continue一般不能用于switch语句中,但是switch语句如果在循环内的话,就可以使用continue语句。相当于说,跳出switch语句,跳出本次循环,进行下一次循环。
break:循环中遇到break,意思是说跳出本次循环,或跳出switch语句。
-
switch必须包含default且放在最后;
break是退出switch语句块;return是退出方法体
-
if / else / for / while / do 都要使用大括号;即使一行代码也要使用大括号
二、接口测试标准
-
接口测试意义:
按照分层测试模型,处于中间层的接口测试,在效率,成本,技术,实施难度上综合来讲,是收益最大的。相较于传统的UI层次的测试,接口测试把测试提前了并且能够覆盖到一些UI测试无法触及的功能点,提高了测试的覆盖率。接口测试也更容易实现自动化持续集成,支持后端快速发版需求。
-
接口测试标准
# 1. 要求验证接口正常调用无误 根据业务规则构造合适的参数进行接口调用,接口请求正常且业务处理逻辑正确。 # 2. 验证接口入参必填项 要求入参必填项均填入的情况下,接口请求正常且业务处理逻辑正确。 入参必填项不填或传入为Null的情况下,返回错误信息,内容包含具体什么项目没有填写。 # 3. 验证接口入参选填项 要求选填项不填或者为null时,接口请求正常且业务处理逻辑正确。 # 4. 验证接口入参的字段类型 要求字段类型与接口文档一致时,接口请求正常且业务处理逻辑正确。 字段类型与接口文档不一致时,接口请求失败并返回相关信息。
三、后台注释规范
-
类、类属性、类方法的注释必须使用 Javadoc 规范,使用
/**内容*/
格式,不得使用// xxx
方式。/** *内容 *内容 */
-
所有的类都必须添加创建者和创建日期。
-
方法内部单行注释,在被注释语句上方另起一行,使用
// xxx
注释。方法内部
多行注释
使用/*内容*/
注释,注意与代码对齐。 -
所有的
枚举类型字段
及常量字段
必须要有注释,说明每个数据项的用途。 -
对于方法参数需要填写参数注释。
-
代码修改的同时,注释也要进行相应的修改,尤其是参数、返回值、异常、核心逻辑等的修改。
-
在类中删除未使用的任何字段和方法;在方法中删除未使用的任何参数声明与内部变量。
-
对于注释的要求:
- 第一、能够准确反映设计思想和代码逻辑;
- 第二、能够描述业务含义,使别的同事能够迅速了解到代码背后的信息。完全没有注释的大段代码对于阅读者形同天书。
- 😊注释是给自己看的,即使隔很长时间,也能清晰理解当时的思路;注释也是给继任者看的,使其能够快速接替自己的工作。
-
好的命名、代码结构是自解释的,注释力求精简准确、表达到位。避免出现注释的一个极端:过多过滥的注释,代码的逻辑一旦修改,修改注释是相当大的负担。
-
编写注释时需要用确定的语言,禁止出现 “当前不用了” ," 可能之后会用到 " 此类不确定描述,对代码后续维护中会造成困扰。
-
特殊注释标记,请注明标记人与标记时间。 待办事宜(TODO):标记好标记人,标记时间和预计处理时间。