系统化代码审查模式,涵盖安全性、性能、可维护性、正确性与测试,附带严重等级和结构化反馈指导
代码检讨检查列表 : 深思熟虑, 结构化的代码检讨方法是一项面向实际任务的技能,主要用于系统化地通过每个维度而不是随机扫描;OpenClaw / Moltbot / Clawbot.;
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
采用全面、结构化的方式审查代码。请系统性地逐项检查每个维度,而非随机浏览。
npx clawhub@latest install code-review
| 维度 | 关注点 | 优先级 |
|---|---|---|
| Security | 漏洞、认证、数据泄露风险 | Critical |
| Performance | 响应速度、内存使用、可扩展性瓶颈 | High |
| Correctness | 逻辑错误、边界情况、数据完整性 | High |
| Maintainability | 可读性、代码结构、面向未来的设计 | Medium |
| Testing | 测试覆盖率、测试质量、可靠性 | Medium |
| Accessibility | WCAG 合规性、键盘导航支持、屏幕阅读器兼容性 | Medium |
| Documentation | 注释、API 文档、变更日志条目 | Low |
对每一处变更均需检查以下安全漏洞:
dangerouslySetInnerHTML 或其等效机制,须有充分理由且确保安全分三轮通读代码,切勿试图一次完成全部审查。
| 轮次 | 关注点 | 耗时 | 重点检查项 |
|---|---|---|---|
| 第一轮 | 高层结构 | 2–5 分钟 | 架构适配性、文件组织、API 设计、整体方案合理性 |
| 第二轮 | 逐行细节 | 主要耗时 | 逻辑错误、安全问题、性能缺陷、边界情况 |
| 第三轮 | 边界情况与加固 | 5 分钟 | 故障模式、并发问题、边界值、缺失测试 |
为每条评论标注严重程度,便于作者快速识别哪些问题会阻断合并。
| 等级 | 标签 | 含义 | 是否阻断合并? |
|---|---|---|---|
| Critical | [CRITICAL] |
存在安全漏洞、数据丢失风险或导致生产环境崩溃 | 是 |
| Major | [MAJOR] |
存在 Bug、逻辑错误或显著性能退化 | 是 |
| Minor | [MINOR] |
有助于降低未来维护成本的改进建议 | 否 |
| Nitpick | [NIT] |
风格偏好、命名建议或微小清理项 | 否 |
务必在每条评论开头添加严重程度标签,消除理解歧义。
反面示例:
此处有误,请修正。
正面示例:
[MAJOR]此查询将用户输入直接拼接进 SQL 字符串(第 42 行),存在 SQL 注入风险。建议改用参数化查询:SELECT * FROM users WHERE id = $1
反面示例:
为何未补充测试?
正面示例:
[MINOR]新增的calculateDiscount()函数包含多个分支路径,建议补充零数量与负价格等边界情况的测试用例,以防回归。
反面示例:
我会用不同方式实现。
正面示例:
[NIT]当前实现效果良好。另一种思路是将重试逻辑抽离为共享的withRetry()封装器 —— 此为可选优化,可后续跟进。
避免以下常见误区,以免浪费时间并损害团队信任:
| 反模式 | 说明 |
|---|---|
| 走形式审批(Rubber-Stamping) | 未经审阅即批准。制造虚假信心,导致缺陷流入生产环境。 |
| 伪优先级争论(Bikeshedding) | 花费 30 分钟争论变量命名,却忽视一个潜在竞态条件。 |
| 因风格阻断(Blocking on Style) | 拒绝批准仅因格式问题 —— 此类问题应由 Linter 自动强制执行。 |
| 过度管控(Gatekeeping) | 强行要求采用个人偏好的实现方式,而提交方案本身完全正确。 |
| 路过式审查(Drive-by Reviews) | 仅留下一条模糊评论便不再跟进。请承诺全程参与闭环。 |
| 范围蔓延审查(Scope Creep Reviews) | 提出与当前 PR 无关的重构需求,此类工作应拆分为独立 PR。 |
| 滞留式审查(Stale Reviews) | 任由 PR 悬置数日。应在 24 小时内完成审查,或主动移交他人。 |
| 情绪化表达(Emotional Language) | 使用“这很糟糕”或“明显错误”等表述。请批评代码,而非开发者本人。 |
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.5万人学习
最新文章