public/技术规范/Java后端开发规范.md

95 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Java后端开发规范
> 拟稿:[黎润豪](/lirh)<a href="https://blog.lroyia.top" target="_blank">(个人博客)</a>
>
> <div><font>版本号 1.0.0 </font></div>
>
## 前言
本文为公司Java后端开发的代码规范规范分如下两级
- <font color="red">【强制】</font>:开发者必须遵循的开发规范要求
- <font color="green">【推荐】</font>:开发者选择性遵循的开发规范要求
## 编程约束
### 命名
- <font color="red">【强制】</font>杜绝完全不规范的缩写,避免望文不知义。
> <font color="red">【反例】</font>AbstractClass缩写成AbsClasscondition缩写成condiFunction缩写成Fu。
- <font color="red">【强制】</font>严禁使用非全世界都知道的拼音命名。
> <font color="green">正例</font>alibaba/youku/hangzhou
> <font color="red">反例</font>suanFen【算分】getGTHTypeCode【获取个体户类型编码】
#### 类命名
- <font color="red">【强制】</font>采用大驼峰UpperCamelCase命名法禁止使用数字命名。
> <font color="green">【正例】</font>KeyPairGlobalConfig
> <font color="red">【反例】</font>areaSliceAreaSlice1AreaSlice2
- <font color="green">【推荐】</font>采用【名词】,【形容词+名词】的格式进行命名
> <font color="green">【正例】</font>SMSSenderGlobalConfig
> <font color="red">【反例】</font>SendSMS
- <font color="red">【强制】</font>抽象类必须以Abstract或Base开头工具类例外如StringUtils异常类名明必须以Exception结尾测试类必须以Test结尾。
- <font color="red">【强制】</font>接口的参数类必须要以VO或Dto结尾命名接口与接口之间的传输参数传输类必须以Dto结尾命名。
#### 方法命名
- <font color="red">【强制】</font>采用小驼峰LowerCamelCase命名法禁止使用拼音命名
- <font color="green">【推荐】</font>方法参数不多于5个多于5个后改用DTO进行传输。
#### 变量命名
- <font color="red">【强制】</font>常量与枚举均使用大写+下划线组合的方式命名
> <font color="green">【正例】</font>LIMIT_SIZEENTITY_TYPE
- <font color="red">【强制】</font>采用小驼峰LowerCamelCase命名法禁止使用拼音命名
- <font color="red">【强制】</font>局部非循环与下标变量不可使用单字母命名特殊数学含义例外如斜截式的斜率a常数b
## 异常处理
- <font color="red">【强制】</font>方法若有显式的RuntimeException异常抛出必须使用`throws`关键字将其标识到方法上
- <font color="red">【强制】</font>异常的打印均用日志对象的error等级输出
- <font color="red">【强制】</font>IDEA发现的空指针问题必须要处理掉
- <font color="red">【强制】</font>捕获异常和跑异常必须完全匹配,或者捕获异常是抛异常的父类
- <font color="red">【强制】</font>若异常被捕获,如果数据需要回滚,一定要注意进行手动回滚
## 日志规约
- <font color="red">【强制】</font>日志对象在项目引用了lombok的情况下请用@SLF4J注解声明
- <font color="red">【强制】</font>所有日志文件至少保存15天
- <font color="red">【强制】</font>日志信息拼接使用`{}`占位符,以提高可读性和拼接性能
- <font color="red">【强制】</font>生产环境进制直接使用`System.out``System.err`或`e.printStackTrace()`充当日志输出
- <font color="red">【强制】</font>避免重复打印日志浪费磁盘空间务必在日志配置文件中的子logger配置additivity=false
```xml
<logger name="com.chinaweal.dao" level="debug" additivity="false"/>
```
## 代码结构
- <font color="green">【推荐】</font>`{}`代码块嵌套不应超过4层
## 工程结构
- <font color="green">【推荐】</font>目录结构com.chinaweal.{项目简称}.{通用配置名/数据源缩写}.{controller/service/entity/mapper}