一、命名规范:
1、文件名
a. POJO 或者Entity实体类。
b. DTO 数据传输。
c. BO业务封装。
d. VO前端交互(RequestXxxVO、ResponseXxxVO)。
e. 抽象类命名使用 Abstract 或 Base 开头 ; 异常类命名使用 Exception 结尾 ; 测试类命名以它要测试的类的名称开始,以 Test 结尾。
2、变量名
a. 代码中命名:代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束,不能使用关键字。
b. 方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式。
c. 常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。
d. 数据库字段名(避免state)、(建议is_XXXX)。
e. POJO类的布尔属性不能加is,而数据库字段必须加 is_,在resultMap中进行字段与属性之间的映射。
f. 数据库中特殊字段类型如:text,Mybatis-generator自动生成代码时切勿忽略特殊字段配置规则,取值时且勿忽略映射规则。
3、静态值配置化
a. 静态值统一归类到配置文件中,代码中统一的静态属性值,建议放到配置文件中。
b. 业务/系统、异常类型,建议采用枚举类key-value方式,防止出现key与value含义不符的情况。
二、开发常见雷区
1、注意事务注解的使用;避免在同一个类调用带事务注解的方法。
2、依赖注入,推荐构造器方式,不推荐@Autowired属性注入,避免出现注入null的情况。
3、分层处理,controller处理接收参数/返回参数,service处理逻辑,dao层数据库交互。
4、协同开发时,建议使用 //TODO:待处理 、//FIXME:错误。
5、不能在 finally 块中使用 return,会导致try中的return失效。
6、异常处理建议
a. 方法一 :if (obj != null) {throw new 自定义异常…}
b. 方法二:避免try{}catch{}.异常信息应该包括两类信息:业务现场信息和异常堆栈信息。如果不处理,那么通过关键字 throws 往上抛出。
7、日志
a. 使用占位符。
b. 避免重复打印日志,在日志配置文件中设置 additivity=false。
c. System.out.println
三、Tips
1、增加SpringBoot JSR303校验
2、跟踪业务处理时间建议
StopWatch sw = new StopWatch();
sw.start();
//业务逻辑
sw.stop();
logger.info(“处理时间:{}”, (sw.getTotalTimeMillis()));
相关文章
- 10-16一次压力测试Bug排查-epoll使用避坑指南
- 10-16IPFS指南:ipfs挖矿的常见问题,避坑指南
- 10-16新手避坑指南:Android组件化开发详解
- 10-16React Hooks使用避坑指南
- 10-16MacOS Monterey Beta升or不升?六大亮点、避坑指南,看这篇就够了!
- 10-16Prometheus监控学习笔记之Prometheus不完全避坑指南
- 10-16React Hooks使用避坑指南
- 10-16T31-Day15代码避坑指南
- 10-16Sb1:System.Environment.CurrentDirectory避坑指南
- 10-16避坑指南!Hexo自动化部署阿里云服务器详解