Java后端实际开发规范

本文主要介绍Java后端在实际开发当中的一些规范,主要介绍如下几点规范

当然,那些命名规范,注释规范等,我这里就不在一一阐述了,因为那是最基本的规范

规范1:数据库—表的设计要有增量字段

比如user 用户表
在这里插入图片描述

规范2:参数传递不要使用MapJSONObject或者实体类,使用DTO传递

反例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
正例:
在这里插入图片描述
使用Map或者JSONObject传递,后面维护的人员不知道传递的参数是什么,还要一一和前端核实,非常麻烦;实体类是用来封装数据的,而不是用来传递数据的,不能将它们两个混着使用,代码会很乱,不知道dto、vo、bo的同学,建议先去了解一下。

规范3:for里不建议写io。io包括:数据库、缓存,文件读写等

对数据库的操作是操作IO的,频繁的操作IO是非常耗性能的,因此代码当中,要杜绝编写循环操作数据库的代码,这里举个例子。

在这里插入图片描述

上图,改进后的代码虽然变多了一些,但是,避免了循环操作数据库,特别是当userIdList数据比较多或者数据库当中users表数据量比较大的时候,方式2的速度相比方式1肉眼可见的快。

规范4:判断表达式要使用布尔变量或者封装方法。表达式是变化点。在维护的时候,表达式不知名达意。

反例:
在这里插入图片描述
正例:
在这里插入图片描述

规范5:采用防御式编程,先判断错误的业务,然后再写正确的业务。防御式编程结构清晰分明:先把所有错误穷举,然后集中处理正确逻辑。

反例:

if(null!=user && user.hasAuth()){
	正确逻辑
}

正例:

if(null==user || !user.hasAuth()){
	return;
}
正确逻辑

规范6:禁止使用魔法值

反例:

if (users.getType()==1){
            
 }

正例: 定义一个枚举

@AllArgsConstructor
@Getter
public enum UserTypeEnum {
    ADMIN(1,"管理员"),
    TEACHER(2,"老师"),
    STUDENT(3,"学生");

    private Integer type;
    private String desc;
}

然后再使用

 if (users.getType()== UserTypeEnum.ADMIN.getType()){
            
        }

本文的分享就到这里了,当然,实际开发当中还有许许多多的规范,这里,我只是列举了一些初学者最容易不遵守的一些规范。

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值