Skip to content

Latest commit

 

History

History
63 lines (46 loc) · 2.72 KB

开发规范.md

File metadata and controls

63 lines (46 loc) · 2.72 KB

开发规范

Contributor为Qualitis贡献代码时,需遵循如下规范进行开发。

一、接口规范

1.URL规范

内部接口:

/api/v1/{role}/{module}/.+

外部接口:

/outer/api/v1/{module}/.+

约定:
v1为服务的版本号。
{role}为角色名称,目前Qualitis有admin和projector两种角色。
{module}为模块名称。

2. 返回值规范

{
    "code": "200",
    "message": "",
    "data": {
        
    }
}

约定:
code:返回状态信息。
message:返回请求的提示信息。
data:返回具体的数据。

code状态码 含义 备注
200 成功的请求 当请求成功的时候,返回200状态码
500 服务器错误,请求失败 服务器内部错误,如保存数据库失败等,返回500状态码
400 请求参数错误 请求参数不符合规范,返回400状态码
401 鉴权失败 用户鉴权失败,要么没有登录,要么签名错误
403 权限不足 用户鉴权通过,但是权限不足

二、日志规范

【约定】Qualitis项目选择slf4j和Log4j2作为日志打印框架,去除了Spring Boot包中自带的Logback日志框架。由于Slf4j会随机选择一个日志框架进行绑定,所以在引入新依赖的时候,需要将诸如slf4j-log4j等桥接包exclude掉,不然日志打印会出现问题。如果新引入的依赖包含了Log4j等包,不要进行exclude,不然代码运行可能会报错。

【强制】类中不可直接使用日志系统(log4j2、Log4j、Logback)中的API。应采用LoggerFactory.getLogger(getClass)。

【强制】严格区分日志级别。Fatal级别的日志,在应用初始化的时候,就应该抛出来,并使用System.out(-1)退出。ERROR级别的异常为开发人员必须关注和处理的异常,不要随便用ERROR级别的。Warn级别是用户操作异常日志和一些方便日后排除BUG的日志。INFO为关键的流程日志。DEBUG为调式日志,尽量少写。

【强制】要求:INFO级别的日志,每个小模块都必须有,关键的流程,都至少有INFO级别的日志。

【强制】异常信息应该包括两类信息:案发现场信息和异常堆栈信息。如果不处理,那么通过关键字throws往上抛出。

三、并发规范

【强制】线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。

【强制】高并发时,同步调用应该去考量锁的性能损耗。能用无锁数据结构,就不要用锁;能锁代码块,就不要锁整个方法体;能用对象锁,就不要用类锁。

【强制】ThreadLocal尽量少用,用的时候如果存入的是一个需要close的对象,记得及时close释放掉。