rwadurian/backend/services/identity-service/test/code-quality-checklist.md

170 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 代码质量检查清单
## 自动化工具
### 1. ESLint - 代码规范检查
```bash
npm run lint
```
### 2. Prettier - 代码格式化
```bash
npm run format
npm run format:check
```
### 3. TypeScript 类型检查
```bash
npm run build
# 或
tsc --noEmit
```
### 4. 测试覆盖率
```bash
npm run test:cov
```
**目标覆盖率:**
- 整体覆盖率 > 80%
- 关键业务逻辑 > 90%
- 领域模型 > 95%
### 5. SonarQube - 代码质量分析
```bash
# Docker 启动 SonarQube
docker run -d --name sonarqube -p 9000:9000 sonarqube:latest
# 扫描项目
npx sonar-scanner \
-Dsonar.projectKey=identity-service \
-Dsonar.sources=src \
-Dsonar.host.url=http://localhost:9000
```
检查指标:
- Code Smells
- Bugs
- Vulnerabilities
- Security Hotspots
- Duplications
- Technical Debt
### 6. 循环复杂度检查
```bash
npm install -g complexity-report
cr --format json src/**/*.ts
```
**目标:**
- 函数循环复杂度 < 10
- 文件平均复杂度 < 5
## 手动代码审查清单
### 架构和设计
- [ ] 遵循 DDD 原则
- [ ] 清晰的层次划分Domain/Application/Infrastructure/API
- [ ] 依赖方向正确外层依赖内层内层不依赖外层
- [ ] 没有循环依赖
- [ ] 接口隔离依赖倒置
### 领域层
- [ ] 值对象是不可变的
- [ ] 实体有唯一标识
- [ ] 聚合根控制一致性边界
- [ ] 领域事件正确发布
- [ ] 业务规则在领域层不在应用层
### 应用层
- [ ] Command/Query 职责明确
- [ ] Handler 只协调不包含业务逻辑
- [ ] 事务边界合理
- [ ] 异常处理恰当
### 基础设施层
- [ ] Repository 不泄露持久化细节
- [ ] 外部服务接口清晰
- [ ] 错误处理和重试机制
### API 层
- [ ] DTO 验证充分
- [ ] 错误响应统一
- [ ] API 文档完整Swagger
- [ ] 版本控制策略
### 安全
- [ ] 没有硬编码的密钥/密码
- [ ] 敏感数据加密
- [ ] 输入验证和消毒
- [ ] SQL 注入防护使用 ORM
- [ ] XSS 防护
### 性能
- [ ] 没有 N+1 查询
- [ ] 合理使用索引
- [ ] 避免阻塞操作
- [ ] 合理的缓存策略
- [ ] 分页查询避免全表扫描
### 可维护性
- [ ] 代码可读性好
- [ ] 函数/类职责单一
- [ ] 命名清晰准确
- [ ] 注释充分但不冗余
- [ ] 避免魔法数字
### 测试
- [ ] 单元测试覆盖关键逻辑
- [ ] 测试用例清晰可读
- [ ] 测试独立不依赖顺序
- [ ] Mock 使用恰当
## 依赖分析
### 检查依赖关系
```bash
npm install -g madge
# 生成依赖图
madge --image deps.png src/
# 检查循环依赖
madge --circular src/
```
### 检查未使用的依赖
```bash
npm install -g depcheck
depcheck
```
### 检查过时的依赖
```bash
npm outdated
```
## 文档检查
- [ ] README.md 完整
- [ ] 项目介绍
- [ ] 安装步骤
- [ ] 运行命令
- [ ] 环境变量说明
- [ ] API 文档链接
- [ ] 架构文档
- [ ] 系统架构图
- [ ] 领域模型图
- [ ] 数据库 ER
- [ ] API 接口文档
- [ ] 开发文档
- [ ] 开发环境搭建
- [ ] 编码规范
- [ ] Git 工作流
- [ ] 测试指南
## Git 提交质量
- [ ] Commit message 清晰
- [ ] 每个 commit 是原子性的
- [ ] 没有提交敏感信息
- [ ] 分支策略清晰