2.1 KiB
2.1 KiB
开发交付流程
每次实施/开发完功能后,必须按以下步骤执行:
Step 1: 代码评审
- 检查变更是否符合现有代码模式(schema、service、controller、module 的结构一致性)
- 检查是否有未使用的变量、import、参数
- 检查命名规范是否与项目一致
- 检查是否有重复代码或可复用逻辑
Step 2: 安全评审
- 注入防护:检查所有外部输入(请求 body、query、params)是否有注入风险(HTML、Shell、NoSQL)
- 认证/授权:检查端点是否正确地加了 JWT guard 或
@Public();管理端接口是否有 AdminGuard - 并发安全:检查所有修改用户额度/积分的操作是否使用原子操作(
findOneAndUpdate + $inc),而非 read-modify-write - 敏感信息:检查是否误将密钥、凭据、token 暴露到响应或日志中
- XSS/CSRF:检查用户内容输出到 HTML/PDF 时是否做了转义
Step 3: 性能优化
- 检查是否有 N+1 查询(循环内查数据库),应使用批量查询或聚合
- 检查大表查询是否有索引覆盖
- 检查是否有不必要的
.lean()缺失(读操作用exec()但不需要 mongoose document 方法时应加.lean()) - 检查是否有内存泄漏风险(如 puppeteer browser 未在 finally 中 close)
- Throttler/限流是否合理
Step 4: 完整测试
# 构建检查
cd /root/opencode-workspace/zhiyin/backend && npx nest build 2>&1
# 单元测试
npm test -- --forceExit --detectOpenHandles 2>&1
# 如果有变更的模块,验证关键 endpoint curl 可访问
Step 5: 同步修复
- 上述步骤发现的问题必须修复后再发布
- 修复后重新执行 Step 4 验证构建通过
Step 6: 部署到生产
# 构建
cd /root/opencode-workspace/zhiyin/backend && npx nest build
# 同步到生产目录
cp -rf dist/* /www/wwwroot/server/yzr-yhl/backend/dist/
# 复制证书(postbuild 替代)
cp -r certs /www/wwwroot/server/yzr-yhl/backend/dist/src/certs
# 重启
pm2 restart yhl-backend
# 验证
sleep 3 && curl -s http://localhost:3002/api/share/visit/test?visitorId=v