1项目命名规范
1、工程项目名,尽量想一些有意义、有传播价值的名称;比如星球、游戏、名人、名地名等;取名就跟给孩子取名一样,独特、有价值、有意义、好传播
2、所有的类都必须添加创建者和创建日期
3、所有代码:包括项目代码、测试代码、临时性代码、脚本统统加入Git仓库进行版本管理,避免误删除、误操作丢失
4、项目需要有单元测试,测试覆盖度50%,测试代码放到单独的src/test/java工程目录下,单测也要入Git仓库管理
2项目目录结构规范
项目名称-admin //web端服务接口(面向浏览器前端的后端接口服务)、定时任务等
项目名称-service //rpc微服务工程,
项目名称-api //终端api接口(面向外部接口,比如APP)
项目名称-common //公共模块
项目名称-web //vue前端工程
项目名称-client //给其它业务依赖参数,接口定义工程,feign接口调用
3.项目业务模块包命名 caes为公司英文简称,实际需求替换
com.caes.项目名.模块名.controller
com.caes.项目名.模块名.feign
com.caes.项目名.模块名.service
com.caes.项目名.模块名.dao
com.caes.项目名.模块名.entity
com.caes.项目名.模块名.vo
com.caes.项目名.模块名.dto
com.caes.项目名.模块名.param
com.caes.项目名.common.listener
com.caes.项目名.common.config
4代码命名规范
1、无特殊要求,后端项目一律采用以SpringBoot框架。
2、代码中的命名均不能以下划线或美元符号开始,更不允许直接使用中文的方式。代码中的命名避免使用拼音与英文混合的方式。
3、类名使用UpperCamelCase风格,必须遵从驼峰形式,但以下情形例外:DO / BO / DTO / VO / AO
4、方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式
5、常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚准确,细粒度,不要嫌名字长;比如MAXCOUNT适当细分为MAXXXXCOUNT,MAXYYY_COUNT
6、抽象类命名使用 Abstract 或 Base 开头;异常类命名使用Exception结尾;测试类命名以它要测试的类的名称开始,以Test结尾
7、POJO类中布尔类型的变量,都不要加is,否则部分第三方框架解析会引起序列化错误
8、包名统一使用小写,点分隔符之间有且仅有一个自然语义的词汇
9、杜绝不规范的简写,避免望文不知义;比如configure简写为config、cfg、conf都可以,con就不合理
10、如果模块、接口、类、方法使用了设计模式,在命名时体现出具体模式;比如OrderFactory,AgentProxy
11、枚举类名建议带上 Enum 后缀,枚举成员名称需要全大写,单词间用下划线隔开
12、领域模型命名规约:
数据对象:xxxPO,xxx即为数据表名, 对象属性和表字段对应;
数据传输对象:xxxDTO,xxx为业务领域相关的名称,前端向后端传递对象,FEIGN调用,及其他数据对象传输统一使用DTO后缀;
展示对象:xxxVO,xxx一般为view名称;
业务处理对象:xxxBO,xxx为业务领域相关的名称.
其它规范
1后端代码规范
后端开发必须安装Java阿里代码规范插件,并启用检查代码,对于不符合规范的拒绝提交。
IDEA安装该插件
打开IDEA,File-> Setteings->Plugins->Browse Repositories,在Browse Repositories搜索栏搜索Alibaba,然后安装Alibaba Java Coding Guidelines
下载本地zip文件,下载地址:Alibaba Java Coding Guidelines - IntelliJ IDEs Plugin | Marketplace
下载版本 Alibaba Java Coding Guidelines 2.1.1
打开IDEA,File->Settings->Plugin->Install plugin from disk,选择刚才自己下载插件zip包的地址
2日志规范
日志很重要,需要统一定义日志格式规范
1、必须要有日志、必须要有日志、必须要有日志
2、日志要能清晰反映程序运行状态、上下游链路调用处理过程、核心逻辑
3、日志必备字段:日志级别、时间戳、服务名、IP、调用方、TraceId、日志主体
4、谨慎记录日志,生产环境避免输出debug日志,有选择地输出 info 日志,注意日志输出量的问题,避免无意义的大段不可阅读的日志。大量地输出无效日志,不利于系统性能提升,也不利于快速定位错误点
3接口规范
接口设计原则
接口设计应立足于本服务自身,服务核心提供什么对外的能力,接口用于匹配自身的能力,接口设计以通用为准,避免被需求牵着走,提供一大堆极度相似的接口给维护带来困难。
接口设计需考虑安全问题及权限问题,接口设计需避免可遍历的访问
接口的入参必须检查及有效性验证,非法参数必须拒绝,并返回相应错误信息
部分接口,需有防重限制,访问量限制,验证码限制等,避免被滥刷,造成资损
接口规范参考:《RestfulL API规范》
4数据库规范
数据库开发规范参考:《MYSQL数据库涉及规范》
5前端开发规范
1、无特殊要求,前端项目一律采用基于 @caes/caes-frontwork前端框架。
2、项目名称全部采用小写,以下划线或者短横线分割。如official-website,目录命名全部采用小写,以短横线分割。有复数结构时,要采用复数命名法。
3、详细规范遵循: 《WEB端编码规范》