#### 开发环境 

- Java11 
- maven3.6+

#### 公共约定

1. 所有方法返回值必须使用包装类R<T>，并指明其泛型T
2. 所有service不允许调用service,目业务逻辑只允许在service中出现
3. 需要依赖注入的类，强烈建议使用构造注入
4. 业务代码关键模糊/多意的地方必须带有注释
5. 非业务接口必须要以IX开头
6. 抽像类必须要以AX开头
7. 尽量不要使用Object作为泛型
8. 如多个参数或者响应体，能明确个数时。强烈建议使用定长数组
9. 去除没有用到的类引用
10. 不要客惜废弃的老代码
11. 请不要写几余无用的代码。if(true)之类的代码块完全不应该出现，用空行隔开该段代码是更好的选择
12. ,请合理运用空行。空行可以用来隔开相对独立的代码块，有利于阅读和理解。但是不要使用超过一行的空行，对空间，别太警侈了
13. 请不要在两个地方出现完全相同的代码
14. 命名类，方法，变量值用简写，除非大家都人认
15. 把所有的类变量放到最前面，如果比较多请按用途分组排列
16. 拆分大的类，大的方法 千万不要堆出千行代码类!!!!

#### 类注释模板

```java
/**
 * <p>类注释</p>
 * @author 作者
 * 时间：xxxx年xx月xx日
 */
```

#### 方法注释模板

```java
/**
 * <p>描述</p>
 * @author 作者
 * @param 参数描述，参数为类则包含{@link Object}
 * @param...
 * @return 返回值描述，如无返回值则为void 返回值为类则包含{@link object}
 * 
 */
```

#### 项目协同开发公共约定参照
project
```java
//-- bean                 自定义bean对象
//-- config               项目配置管理
//-- controller           前端统一交互
//-- dto                  所有方法参数实体管理
//-- enums                公共枚举
//-- exception            自定义异常 请参照异常定义规范
//-- handler              项目公共处理器
//-- mapper               数据持久化交互对
//-- domain               数据实体
//-- annotations          自定义注解
//-- interceptor          自定义拦载器
//-- task                 定时任务
//-- cloud                微服务方法接口
//    -- cal              微服务熔断实现
//-- scheduleds           全局定时任务
//-- socket               websocket
//-- service              业务逻辑接口
//    -- imp              业务逻实现
//-- vo                   统一方法返回页面交互结果
//-- utils                项目工具业务 (XXXUtil.java)
//XXXApplication.java     项目启动类
//Basiclnfo.java          全局异常定义规范接口
//Constants.java          全局常量池
//PageDTO.java            全局分页
//R.java                  全局包装类
```











