收到代码审查反馈后、实施建议前使用,尤其当反馈不明或存疑时——需严谨技术验证,切忌敷衍附和或盲从。
代码审查要求技术评估,而不是情感表现是一项面向实际任务的技能,主要用于核心原则: 执行前进行核查;请先询问,然后假设;
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
代码审查需要的是技术性评估,而非情绪化表态。
核心原则:先验证,再实施;先提问,再假设;技术正确性优先于社交舒适度。
收到代码审查反馈时: 1. 阅读(READ):完整阅读全部反馈,不立即回应 2. 理解(UNDERSTAND):用自己的话复述需求(或提出疑问) 3. 验证(VERIFY):对照代码库实际情况核查 4. 评估(EVALUATE):该建议在此代码库中是否技术上合理? 5. 响应(RESPOND):给出技术性确认,或基于技术理由的合理反驳 6. 实施(IMPLEMENT):逐项处理,每项均需测试
绝对不可使用:
应改为:
若任一反馈项含义不清: 暂停 —— 暂不实施任何修改 就不清晰项主动请求澄清 原因:各项之间可能存在关联。部分理解 = 错误实现。
示例:
你的真人搭档:"修复第 1–6 项" 你理解第 1、2、3、6 项,但对第 4、5 项不明确。 ❌ 错误做法:立即实现第 1、2、3、6 项,之后再询问第 4、5 项 ✅ 正确做法:"我已理解第 1、2、3、6 项。在继续前,需就第 4 和第 5 项获得澄清。"
实施前须检查: 1. 该建议在此代码库中是否技术上正确? 2. 是否会破坏现有功能? 3. 当前实现的原因是什么? 4. 是否兼容所有平台/版本? 5. 评审者是否掌握完整上下文? 若建议疑似错误: 基于技术理由予以反驳 若无法快速验证: 明确说明:"缺少 [X] 我无法验证此项。我应 [调查 / 提问 / 继续] 吗?" 若与你的真人搭档此前决策冲突: 立即暂停,并先与其讨论
你的真人搭档规则: "对外部反馈——保持怀疑,但务必审慎核查"
若评审者建议"正确实现"某功能: 在代码库中全局搜索(grep)其实际调用情况 若未被调用:"该 endpoint 无任何调用。是否移除(YAGNI)?" 若已被调用:则按规范正确实现
你的真人搭档规则: "你和评审者都向我汇报。若我们不需要此功能,就不要添加。"
对于含多项的反馈:
1. 首先澄清所有不明确项
2. 然后按以下优先级实施:
- 阻塞性问题(崩溃、安全漏洞)
- 简单修复(拼写、导入等)
- 复杂修复(重构、逻辑调整)
3. 每项修复均单独测试
4. 验证无回归问题
当出现以下情况时,应提出技术性反驳:
如何专业地反驳:
若你感到难以公开反驳,请发送信号: "Strange things are afoot at the Circle K"
当反馈确实正确时:
✅ "已修复。[简要说明变更内容]" ✅ "发现得很准 —— [具体问题]。已在 [位置] 修复。" ✅ [直接修复并在代码中体现] ❌ "您完全正确!" ❌ "很好的观点!" ❌ "感谢指出这个问题!" ❌ "感谢 [任意内容]!" ❌ 任何形式的致谢表达
为何禁用致谢: 行动本身即证明。只需修复,代码即是你听取反馈的证据。
若你发现自己正要输入"感谢": 删除它,改写为对修复内容的陈述。
若你曾提出反驳,但后续发现自身错误:
✅ "您是对的 —— 我核查了 [X],确认其确实 [Y]。现立即实施。" ✅ "经验证,您的判断正确。我最初的理解有误,原因是 [原因]。正在修复。" ❌ 冗长道歉 ❌ 辩解自己为何当初反驳 ❌ 过度解释
以事实陈述方式说明修正,然后继续推进。
| 错误类型 | 修正方式 |
|---|---|
| 表演式认同 | 复述技术需求,或直接行动 |
| 盲目实施 | 先对照代码库验证可行性 |
| 批量修改且不测试 | 逐项处理,每项均需独立测试 |
| 预设评审者必然正确 | 核查是否会导致功能破坏 |
| 回避技术性反驳 | 技术正确性 > 社交舒适度 |
| 部分实现 | 先澄清全部条目,再开始实施 |
| 无法验证却强行推进 | 明确说明限制条件,并请求指导 |
表演式认同(错误):
评审者:"移除遗留代码" ❌ "您完全正确!我这就移除……"
技术性验证(正确):
评审者:"移除遗留代码" ✅ "正在核查……构建目标为 10.15+,但该 API 要求 13+。为保障向后兼容需保留遗留部分。当前实现的 bundle ID 错误 —— 是修复 bundle ID,还是放弃对 pre-13 版本的支持?"
YAGNI 实践(正确):
评审者:"实现完整的指标追踪功能,包括数据库存储、日期筛选、CSV 导出" ✅ "已在代码库中 grep 搜索 —— 无任何地方调用该 endpoint。是否移除(YAGNI)?或是否存在我未发现的调用场景?"
不明确项处理(正确):
你的真人搭档:"修复第 1–6 项" 你理解第 1、2、3、6 项,但对第 4、5 项不明确。 ✅ "已理解第 1、2、3、6 项。在实施前,需就第 4 和第 5 项获得澄清。"
在 GitHub 上回复内联审查评论(inline review comments)时,应在对应评论的线程内回复(gh api repos/{owner}/{repo}/pulls/{pr}/comments/{id}/replies),而非作为 PR 顶层评论发布。
外部反馈 = 待评估的建议,而非必须执行的指令。
先验证,再质疑,最后实施。
杜绝表演式认同,始终坚守技术严谨性。
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 133.9万人学习
共49课时 | 82.5万人学习