原文网址:Java后端开发常用规范_IT利刃出鞘的博客-CSDN博客
本文介绍Java后端开发的一些规范。持续更新。
本规范是本人总结出来的,可提高项目的可维护性、提高扩展性、提高开发速度。本文可以解决项目中效率低下、难以维护、让人心累的痛点等问题。
模块的划分
单个项目分为xxx-api模块和xxx-core模块。比如用户项目,分为:user-api、user-core。
业务代码的结构
按每个表对应一个包,Controller、Service、Entity放到一个包里,例如:

优点
说明
要用枚举来表示类型,不要用数字。比如:有三种支付方式:微信、支付宝、银联,则这样定义枚举:
- package com.example.pay;
-
- public enum PayType {
- ALIPAY("支付宝支付"),
- WECHAT_PAY("微信支付"),
- BANK_CARD_PAY("银行卡支付")
- ;
-
- /**
- * 描述
- */
- private final String description;
-
- PayType(String description) {
- this.description = description;
- }
-
- public String getDescription() {
- return description;
- }
- }
所有用到的地方都用枚举来表示。比如:
不要这样写
1:支付宝支付;2:微信支付;3:银联支付
原因:可读性极差,排查问题也麻烦。比如:前端页面上看到了2这个类型,还要看接口文档或者问后端这是什么意思,浪费时间!
优点
可读性好
说明
使用Knife4j+Yapi。
Knife4j
Knife4j的用法见这里。例如:

Yapi
使用Yapi将Knife4j的接口信息导入进来:将服务的真实ip+端口与上图中的“分组Url”拼接:http://ip:端口/v3/api-docs?group=all,然后导入到Yapi:

点击“上传”

点击“确认”

查看接口

优点
说明
将git分支分为主分支和临时分支。
开发与提交流程
优点
以上步骤是我之前所在某个公司的提交流程,按这个流程来做,可以做到:合代码基本不出问题、合代码速度快(一般不会超过3分钟)。
以上步骤每一步都是有原因的:
感言
一个正常的功能点,如果合代码超过10分钟,那么,项目的git管理大概率有问题。如果超过30分钟,项目的git管理问题有点儿大。如果超过一个小时,那么...😦
说明
为了便于排查问题,建表时需要加一些必要的字段:创建人、更新人、创建时间、更新时间、删除标记。
SQL
- ALTER TABLE `库名`.`表名`
- ADD COLUMN `create_id` bigint COMMENT '创建人ID',
- ADD COLUMN `update_id` bigint COMMENT '修改人ID',
- ADD COLUMN `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- ADD COLUMN `update_time` datetime DEFAULT NULL COMMENT '修改时间',
- ADD COLUMN `delete_flag` bigint NOT NULL DEFAULT 0 COMMENT '删除标记。0:未删除;其他:已删除';
详解
说明
无论用的是哪种MQ(RabbitMQ、RocketMQ、Kafka),都会需要将Topic、队列等信息写入到MQ服务端(Broker)。
写入服务端有两种方式:
要使用第2种方法(自动注册),不要使用第1种方法(手动添加)。
优点