74 lines
2.7 KiB
Plaintext
74 lines
2.7 KiB
Plaintext
团队代码审查规范
|
||
|
||
本文件定义了团队代码审查中需要遵循的自定义规则。
|
||
|
||
=== 安全类 ===
|
||
|
||
1. 禁止在源码中硬编码密码、令牌、API Key 等敏感凭证
|
||
严重级别:error
|
||
适用语言:javascript, typescript, java
|
||
提示:检测到疑似硬编码凭证,请使用环境变量或密钥管理服务注入
|
||
|
||
2. 禁止使用 eval() 函数,存在代码注入风险
|
||
严重级别:error
|
||
适用语言:javascript, typescript
|
||
提示:eval() 存在安全风险,请使用 JSON.parse() 或 Function 构造器替代
|
||
|
||
3. 禁止直接赋值 innerHTML,可能导致 XSS
|
||
严重级别:warning
|
||
适用语言:所有语言
|
||
提示:避免直接操作 innerHTML,请使用 textContent 或 DOMPurify 清洗
|
||
|
||
=== 命名规范类 ===
|
||
|
||
4. 常量命名必须使用全大写加下划线(SCREAMING_SNAKE_CASE)
|
||
严重级别:warning
|
||
适用语言:javascript, typescript, java
|
||
提示:常量应使用全大写命名,如 MAX_RETRY_COUNT
|
||
|
||
5. 布尔变量和方法名应以 is/has/can/should 开头
|
||
严重级别:info
|
||
适用语言:javascript, typescript
|
||
提示:布尔变量建议添加 is/has/can/should 前缀以提升可读性
|
||
|
||
=== 性能类 ===
|
||
|
||
6. 禁止三层及以上嵌套循环,时间复杂度过高
|
||
严重级别:warning
|
||
适用语言:javascript, typescript, java
|
||
提示:检测到深层嵌套循环(≥3层),建议重构为扁平结构或使用查找表优化
|
||
|
||
7. 异步函数内禁止调用同步阻塞 API
|
||
严重级别:warning
|
||
适用语言:javascript, typescript
|
||
提示:在 async 函数中调用同步 API 会阻塞事件循环,请改用异步版本
|
||
|
||
=== 代码风格类 ===
|
||
|
||
8. 函数参数和返回值应显式标注 TypeScript 类型
|
||
严重级别:info
|
||
适用语言:typescript
|
||
提示:建议为函数添加显式类型注解,提升类型安全性
|
||
|
||
9. 禁止在代码中直接使用魔法数字,应提取为命名常量
|
||
严重级别:info
|
||
适用语言:javascript, typescript
|
||
提示:检测到魔法数字,建议提取为具名常量以提升可维护性
|
||
|
||
=== 团队约定类 ===
|
||
|
||
10. throw 语句必须携带错误上下文信息
|
||
严重级别:warning
|
||
适用语言:javascript, typescript, java
|
||
提示:throw 时应提供足够的上下文信息,便于问题定位
|
||
|
||
11. 生产代码中不应遗留 TODO/FIXME/HACK 注释
|
||
严重级别:info
|
||
排除语言:sql
|
||
提示:代码中发现 TODO/FIXME/HACK 注释,请在发布前处理
|
||
|
||
12. 公共函数应添加文档注释(JSDoc / Javadoc)
|
||
严重级别:info
|
||
适用语言:javascript, typescript, java
|
||
提示:公共函数缺少文档注释,建议补充说明用途、参数和返回值
|