Appearance
目录文件规范
1.1 根目录规范
| 目录名称 | 作用 |
|---|---|
| base | 基础类型模块,共用继承 |
| common | 通用模块,全局组件 |
| config | 配置模块,@configuration 配置 |
| modules | 自定义模块,项目模块 |
1.2 通用组件目录规范
| 目录名称 | 作用 |
|---|---|
| annotation | 自定义注解,类前@xxx |
| aop | 自定义切片 |
| constant | 全局常量,接口类型,魔法值 |
| enums | 全局枚举 |
| excepton | 自定义异常 |
| limit | 自定义限制 |
| lock | 自定义锁 |
| model | 全局实体 |
| model/config | 读取配置文件的实体 |
| model/view | 视图实体 |
| utils | 自定义全局工具 |
1.3 自定义模块、项目目录规范
| 目录名称 | 作用(项目/模块) |
|---|---|
| constant | 常量,接口类型,魔法值 |
| controller | 接口 |
| dao | 数据库原子操作 |
| dao/mapper | mybatis.xml 对应函数 |
| entity | 数据库实体 |
| enums | 枚举 |
| model | 实体 |
| model/config | 配置文件的实体 |
| model/view | 视图实体 |
| service | 服务层接口 |
| serviceImpl | 服务层实现 |
| utils | 自定义工具 |
1.4 资源目录规范

| 目录名称 | 作用(以子目录区分模块) |
|---|---|
| config | 模块项目配置文件 |
| file | 各模块文件 |
| mapper | Mybatis 的 mapper.xml 数据库文件 |
| static | 静态文件 |
| templates | 模板 |
| application.yml | 程序配置 |
| banner.txt | 控制台启动 logo |
| favicon.ico | 项目 logo |
| hibernate.properties | Hibernate 配置 |
| logback-spting.xml | 日志配置 |
1.5 文件命名规范
一眼看出文件的作用,什么类型文件以什么结尾,文件夹为后缀
- 数据库对象 Entity
- 对象 Model
- 视图对象 ViewModel
- 配置文件对象 ConfigModel
- 全局静态 Constant
- 枚举 Enum
- 接口 Controller
- 服务层 Service
- 服务层实现 ServiceImpl
- 数据访问层 Dao
- myBatis 文件 Mapper
- 生成器 Generator
- 配置 Config
- 工具类 Utils
- 切片 Aspect
- 异常 Exception
1.6 变量命名规范(小写驼峰)
- 普通变量:小写驼峰
- 全局静态常量:大写

- 枚举:全大写

1.7 函数命名规范(小写驼峰)
一、文件注释
java
/**
* 描述.
* @author 名字
* @date ${DATE} ${TIME}
* @version 1.0.0
*/
二、函数注释
- 函数作用
- 入参
- 返回结果
三、代码注释 行前注释
1.8 代码规范
快捷键
- 整理代码:CTRL+ALT+L
- 整理引包:CTRL+ALT+O
- 折叠代码:CTRL+ALT+T
- try/catch 的慎用 影响业务的异常应向上抛,而不应该内部解决吃掉异常,异常应该在 aop 抓取

- 代码层次规范 慎用 Controller 实现业务逻辑,影响业务逻辑的共用,造成代码杂乱

- 其他
- 静态变量、静态函数额慎用
- lombok 继承对象时,需要深度继承,否则,toString()、equals()会有实际偏差
- 尽可能 private 私有函数对象等
1.9 参考文档
- 阿里巴巴 Java 开发手册:https://pan.baidu.com/s/1o8RSlaa
- 阿里规范插件安装手册:https://juejin.im/post/59e2e0bd6fb9a0450d101de9
- Java 规范:https://juejin.im/post/5a30e8dc518825569539a456
- API 接口规范完整版本:https://juejin.im/entry/577090792e958a00573c7e88
- 前端 VUE 目录规范文档: https://juejin.im/post/5ab357e66fb9a028b92d0c59
- 阿里开源项目:https://github.com/alibaba