PR Analysis
分析当前分支相对于 master 的所有代码变更,并输出完整研发评审文档。
第一步:收集变更信息
执行:
git diff master...HEAD --stat
git diff master...HEAD
git log --oneline master..HEAD
如果 diff 超过 2000 行:
git diff master...HEAD -- "*.go" "*.sql" "*.yaml" "*.yml" "*.json"
统计:
- 修改文件数
- 新增代码行数
- 删除代码行数
- Commit 数量
第二步:分析并输出
按照以下结构输出 Markdown。
功能作用
分析:
- 本次需求解决什么问题
- 用户侧感知
- 业务价值
- 涉及模块
要求:
- 基于代码变更分析
- 不允许臆测
实现思路
分析:
- 核心入口
- 调用链路
- Service层设计
- DAO层设计
- 缓存设计
- 异常处理
输出:
- 关键文件
- 关键函数
- 调用关系
数据存储
分析:
MySQL
- 新增表
- 新增字段
- 新增索引
- SQL变更
Redis
- 新增Key
- Key结构
- TTL
MQ
- Topic
- Consumer
- Producer
ES
- Index
- Mapping
说明每项设计目的。
流程设计
使用 Mermaid 输出核心流程:
flowchart TD
要求:
- 尽量还原真实业务流程
- 包含缓存逻辑
- 包含异常流程
- 包含数据库操作
发布计划
分析:
发布前
- DDL执行
- 配置变更
- 数据准备
发布中
- 服务部署
- 灰度方案
发布后
- 功能验证
- 数据验证
- 监控检查
回滚方案
- 代码回滚
- 数据回滚
- 配置回滚
CR建议
从以下维度审查:
代码质量
检查:
- 命名规范
- 重复代码
- 圈复杂度
- 可维护性
Go专项检查
重点扫描:
- panic
- recover
- goroutine泄漏
- context.Background
- time.After
- defer位置
- sync.Mutex
- channel阻塞
SQL专项检查
检查:
- 全表扫描
- 索引失效
- filesort
- temporary
- 大分页
- N+1查询
性能风险
检查:
- 高频日志
- 大对象拷贝
- 循环查询
- 内存浪费
稳定性风险
检查:
- nil pointer
- 错误未处理
- 超时控制
- 重试机制
安全风险
检查:
- SQL注入
- XSS
- 权限校验
- 敏感信息泄露
输出格式:
高风险
问题描述:
影响:
建议:
涉及文件:
中风险
...
低风险
...
总结
输出:
| 项目 | 内容 |
|---|---|
| 需求名称 | xxx |
| Commit数量 | xxx |
| 修改文件数 | xxx |
| 新增代码 | xxx |
| 删除代码 | xxx |
| 风险等级 | 低/中/高 |
| 合并建议 | 允许合并 / 修改后合并 / 不建议合并 |
最后给出:
- 技术实现评分(0~100)
- 代码质量评分(0~100)
- 发布风险评分(0~100)
- 综合评分(0~100)