97 lines
2.8 KiB
Markdown
97 lines
2.8 KiB
Markdown
# 团队代码审查规范
|
||
|
||
> 本文档定义了团队代码审查中需要遵循的自定义规则,涵盖安全、命名、性能、代码风格和团队约定五个维度。
|
||
|
||
## 一、安全类规则
|
||
|
||
### 1.1 禁止硬编码凭证
|
||
|
||
**严重级别**:error
|
||
**适用语言**:JavaScript、TypeScript、Java
|
||
|
||
禁止在源码中硬编码密码、令牌、API Key 等敏感凭证。检测到疑似硬编码凭证时,请使用环境变量或密钥管理服务注入。
|
||
|
||
### 1.2 禁止使用 eval()
|
||
|
||
**严重级别**:error
|
||
**适用语言**:JavaScript、TypeScript
|
||
|
||
禁止使用 eval() 函数,存在代码注入风险。eval() 存在安全风险,请使用 JSON.parse() 或 Function 构造器替代。
|
||
|
||
### 1.3 禁止直接赋值 innerHTML
|
||
|
||
**严重级别**:warning
|
||
|
||
禁止直接赋值 innerHTML,可能导致 XSS。避免直接操作 innerHTML,请使用 textContent 或 DOMPurify 清洗。
|
||
|
||
## 二、命名规范类规则
|
||
|
||
### 2.1 常量使用全大写命名
|
||
|
||
**严重级别**:warning
|
||
**适用语言**:JavaScript、TypeScript、Java
|
||
|
||
常量命名必须使用全大写加下划线(SCREAMING_SNAKE_CASE),如 MAX_RETRY_COUNT。
|
||
|
||
### 2.2 布尔变量添加前缀
|
||
|
||
**严重级别**:info
|
||
**适用语言**:JavaScript、TypeScript
|
||
|
||
布尔变量和方法名应以 is/has/can/should 开头,以提升可读性。
|
||
|
||
## 三、性能类规则
|
||
|
||
### 3.1 禁止三层以上嵌套循环
|
||
|
||
**严重级别**:warning
|
||
**适用语言**:JavaScript、TypeScript、Java
|
||
|
||
禁止三层及以上嵌套循环,时间复杂度过高。检测到深层嵌套循环(≥3层)时,建议重构为扁平结构或使用查找表优化。
|
||
|
||
### 3.2 异步函数内禁止同步 API
|
||
|
||
**严重级别**:warning
|
||
**适用语言**:JavaScript、TypeScript
|
||
|
||
异步函数内禁止调用同步阻塞 API。在 async 函数中调用同步 API 会阻塞事件循环,请改用异步版本。
|
||
|
||
## 四、代码风格类规则
|
||
|
||
### 4.1 函数显式类型注解
|
||
|
||
**严重级别**:info
|
||
**适用语言**:TypeScript
|
||
|
||
函数参数和返回值应显式标注 TypeScript 类型,提升类型安全性。
|
||
|
||
### 4.2 禁止魔法数字
|
||
|
||
**严重级别**:info
|
||
**适用语言**:JavaScript、TypeScript
|
||
|
||
禁止在代码中直接使用魔法数字,应提取为命名常量以提升可维护性。
|
||
|
||
## 五、团队约定类规则
|
||
|
||
### 5.1 throw 语句携带上下文
|
||
|
||
**严重级别**:warning
|
||
**适用语言**:JavaScript、TypeScript、Java
|
||
|
||
throw 语句必须携带错误上下文信息,便于问题定位。
|
||
|
||
### 5.2 禁止遗留 TODO 注释
|
||
|
||
**严重级别**:info
|
||
**排除语言**:SQL
|
||
|
||
生产代码中不应遗留 TODO/FIXME/HACK 注释,请在发布前处理。
|
||
|
||
### 5.3 公共函数文档注释
|
||
|
||
**严重级别**:info
|
||
**适用语言**:JavaScript、TypeScript、Java
|
||
|
||
公共函数应添加文档注释(JSDoc / Javadoc),说明用途、参数和返回值。
|