铜陵项目后端开发规范
项目背景
项目使用JEECG框架
框架参考文档(优先查看)
- 开发文档 https://help.jeecg.com/java/readme.html
- 代码生成器 https://help.jeecg.com/java/codegen.html
- 系统权限控制 https://help.jeecg.com/java/system/auth.html
- 框架常用注解 https://help.jeecg.com/java/changyongzhujie.html
- 框架常用功能 https://help.jeecg.com/java/java.html
- 代码规范 https://help.jeecg.com/java/norm.html
- SQL优化技巧 https://help.jeecg.com/java/norm/SQLTuning.html
- 内存溢出排查 https://help.jeecg.com/java/norm/oomAnalyze.html
- WebSocket https://help.jeecg.com/java/advanced/WebSocket.html | https://help.jeecg.com/java/advanced/WebsocketBiz.html
数据库规范
建表规范
所有业务表前缀 mes_ 后面跟模块前缀(例如:硫酸:vitriol) 后面跟 业务表名称 最终:mes_vitriol_xxxx
模块前缀
配料 | 渣选 | 熔炼 | 吹炼 | 精炼 | 电解 | 硫酸 | 能源 | 生产 |
---|---|---|---|---|---|---|---|---|
burden | burden | smelt | blow | refine | electrolysis | vitriol | energy | product |
建表默认包含以下字段:
id varchar(50),
create_by varchar(50),
create_time datetime,
update_by varchar(50),
update_time datetime
项目规范
1.开发架构
开发采用mvc 三层架构。这里不多做赘述。
但是要求,一定要保持控制层的干净,将业务拿到服务层去处理。
2.模块创建规范
参照视频创建 https://help.jeecg.com/java/java/gen/module.html
模块名称要求 enfi-business-{模块代号}
例如:enfi-business-vitriol
要求模块创建在 enfi-module-business 模块下面
pom.xml 无需添加其他依赖示例:
3.框架结构规范
enfi-module-business 添加了 enfi-module-common 模块
要求公共代码统一放入 enfi-module-common 模块 里面,在前缀为模块前缀的包路径下面例如:
将entity 实体类、 mapper包括xml 持久层、service 接口 放在公共模块
将controller 和 service.impl 的接口实现层放到各自的业务模块
4.代码提交规范
代码提交参照 约定式提交
提交信息包含前缀:
5.冒烟测试
每个开发都应对自己开发的功能进行自测。严谨是每个程序员的必修课。
不怕一万,就怕万一。
每个功能在开发完成后必须进行冒烟测试(自测)!!!!
6.代码准则
杜绝垃圾代码
参考垃圾代码书写准则
杜绝项目中出现的垃圾代码,例如:
- 变量名称不规范
- 没有代码注释
- 变量名称函数名称混淆
等垃圾代码。
控制层规范
要求创建控制层
类名必须包含注解
@Api
等注解
例如:
@Api(tags = "{}") //{} 替换为控制层业务名称
@RestController
@RequestMapping("/{}/operate") //{} 替换为当前业务模块前缀
public class XXXController {
}
接口方法必须包含注解
@AutoLog
接口日志记录
@ApiOperation
接口名称
@ApiOperationSupport
接口排序和作者
非必须包含
@ApiParam
,@RequestParam
GET请求参数名称 GET请求必须包含
@RequestBody
POST请求必须包含
例如:
/**
* 吹炼炉物料
* @return
*/
@AutoLog("吹炼主操作工作台接口_吹炼炉物料")
@GetMapping(value = "/material")
@ApiOperation(value="吹炼炉物料", notes="吹炼炉物料")
@ApiOperationSupport(order = 1, author = "xuecxiang")
public Result<?> XXXX(
@ApiParam(value = "姓名")
@RequestParam(name = "name") String name,
@ApiParam(value = "年龄")
@RequestParam(name = "age") Integer age){
List<Map<String, Object>> list = mainOperatingConsoleService.material();
return Result.ok(list);
}
开发阶段不能添加的注解
@RequiresPermissions
- 此注解是接口请求权限认证使用的注解,在项目后期需要权限认证的时候,在添加。
- 此注解是代码生成自带生成的包含在代码中,生成后请自行注释掉
其他待补充。。。。。。
接口文档规范
根据不同类型功能,Controller 可以用注释进行划分分组。 比如 同一类功能增删改查
如果功能比较多,接口层代码臃肿的话 可以采用 下面区块方法进行分组。
// region {?}区块名称
代码
//endregion
例如: