本文主要介绍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()){}

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

Java后端实际开发规范相关推荐

  1. Java后台项目开发规范

    Java后台项目开发规范 写在前边 1.目标 2. 原则 一.命名规范 1.包命名规范 2.类命名规范[**UpperCamelCase命名法**] 2.1==如果在模块或者接口,类,方法中使用了设计 ...

  2. 大数据平台后端一些开发规范

    大家好,我是脚丫先生 (o^^o) 集团大数据平台之流批一体的建设之后. 一直想着能研发一套自己沉淀的小型大数据平台项目. 之后能与小伙伴们多多交流. 在研发的过程中,总结一些开发规范(参考全网),希 ...

  3. 基于SpringBoot+Vue开发的前后端分离博客项目-Java后端接口开发

    文章目录 1. 前言 2. 新建Springboot项目 3. 整合mybatis plus 第一步:导依赖 第二步:写配置文件 第三步:mapper扫描+分页插件 第四步:代码生成配置 第五步:执行 ...

  4. 如何让Java后端日志开发变得优雅

    日志规范 日志位置(什么时候进行日志记录) [强制-ERROR/WARN]操作失败必须记录日志 [强制-ERROR]抛出异常必须记录日志(throw/try-catch) [强制-INFO]敏感操作必 ...

  5. Java 项目 接口开发规范

    API请求与响应规范 请求: get:采用key/value格式 1.@PathVariable 统一指定参数名称,如:@PathVariable("id") 2.@Request ...

  6. Java后端接口开发详细教程

    一面 1 自我介绍和项目 2 Java的内存分区 3 Java对象的回收方式,回收算法. 4 CMS和G1了解么,CMS解决什么问题,说一下回收的过程. 5 CMS回收停顿了几次,为什么要停顿两次. ...

  7. SpringBoot+Vue博客系统---后端接口开发

    Java后端接口开发 从零开始搭建一个项目骨架,最好选择合适,熟悉的技术,并且在未来易拓展,适合微服务化体系等.所以一般以Springboot作为我们的框架基础,这是离不开的了. 然后数据层,我们常用 ...

  8. 来公司必须了解的编码开发规范

    编码开发规范 目  录 1.引言... 1 1.1  编写目的... 1 1.2  使用范围... 1 1.3  术语与缩略语... 1 1.4  参考资料... 2 2............... ...

  9. Java后端学习路线分享

    Java后端学习路线?最近有些网友问我如何学习 Java 后端,还有些是想从别的方向想转过来,但都不太了解 Java 后端究竟需要学什么,究竟要从哪里学起,哪些是主流的 Java 后端技术等等,导致想 ...

最新文章

  1. Camera ISP技术
  2. linux rsync同步 --delete参数 删除目标目录比源目录多余文件
  3. 窗口截图(可指定HWND窗口句柄)
  4. C语言实现二叉树(附完整源码)
  5. 红帽oracle关系,redhat和oracle linux kernel对应关系
  6. intern cookie 纠结之二
  7. 为什么成员属性不会被重写
  8. 保研夏令营、考研复试个人升学简历模板与制作注意事项
  9. 联想电脑如何启动BIOS并开启CPU虚拟化功能
  10. 计算机的cut代表什么意思,cut是什么意思_cut在线翻译_英语_读音_用法_例句_海词词典...
  11. 尚在人间,何处不青春
  12. 1.1二进制文件概述
  13. Windows下错误码全解析
  14. openwrt时间自动同步
  15. 自己的PHP实践项目:开源电子商城系统
  16. canvas 绘制七巧板
  17. Python3中_和__的用途和区别
  18. 使用NoteExpress做文献管理
  19. mysql 官网下载太慢了,来这里!!!
  20. ESP32C3基于Arduino框架下的 ESP32 RainMaker开发示例教程

热门文章

  1. linux基本命令之计划任务
  2. 计算机英语清考,天大2018年10月清考《计算机应用基础》在线考核试题答案
  3. FFMPEG 批量合并和下载或播放在线视频(含去片头片尾)
  4. Java 多线程— 线程的生命周期及方法
  5. 如何在php中加样式,vue如何给组件加css样式,php中加入css样式
  6. php 二进制字符串转图片,PHP二进制与字符串之间的相互转换_PHP教程
  7. 数据治理项目经验分享
  8. 清除卸载CrossOver后的痕迹
  9. 数码相机的分类及各品牌的系列
  10. OO课程仓库部署使用GitLab CI