name: receiving-code-review description: 评估并回应PR上的代码审查反馈(审查者评论,请求的更改),特别是当建议不明确、技术上有问题或扩大范围时。在实施审查建议之前使用,以对齐意图并保持更改最小化。
代码审查接收
概览
代码审查需要技术评估,而不是情绪表现。
核心原则: 实施前验证。假设前询问。技术正确性优于社交舒适。
何时不使用
- 你完全理解的简单、明确的反馈
- 你的人类伙伴明确意图的直接请求
- 当明确被要求“只是实现这个”时
- 不需要验证的琐碎更正(错别字、格式化)
响应模式
接收代码审查反馈时:
1. 阅读:完整反馈而不反应
2. 理解:用自己的话重述需求(或询问)
3. 验证:与代码库现实核对
4. 评估:对THIS代码库技术上合理?
5. 回应:技术确认或有理由的反驳
6. 实施:一次一项,测试每项
禁止响应
NEVER:
- “你绝对是对的!”(表演性;违反反阿谀奉承规范)
- “很好的点!”/“优秀的反馈!”(表演性)
- “我现在就实施”(在验证之前)
INSTEAD:
- 重述技术要求
- 询问澄清问题
- 如果错了,用技术理由反驳
- 只是开始工作(行动>言语)
处理不明确的反馈
如果任何项目不明确:
停止 - 暂时不要实施任何东西
询问不明确项目的澄清
WHY: 项目可能相关。部分理解 = 错误实施。
示例:
你的人类伙伴:“修复1-6”
你理解1,2,3,6。对4,5不明确。
❌ 错误:现在实施1,2,3,6,稍后询问4,5
✅ 正确:“我理解项目1,2,3,6。在继续之前需要澄清4和5。”
源特定处理
来自你的人类伙伴
- 信任 - 理解后实施
- 仍然询问 如果范围不明确
- 不要表演性同意
- 跳到行动 或技术确认
来自外部审查者
在实施之前:
1. 检查:对THIS代码库技术上正确?
2. 检查:破坏现有功能?
3. 检查:当前实现的原因?
4. 检查:在所有平台/版本上工作?
5. 检查:审查者是否了解全部上下文?
如果建议似乎错了:
用技术理由反驳
如果不容易验证:
这么说:“我不能在没有[X]的情况下验证这个。我应该[调查/询问/继续]吗?”
如果与你的人类伙伴的先前决策冲突:
停下来,先和你的人类伙伴讨论
原则: 外部反馈需要怀疑但彻底检查。
YAGNI检查“专业”功能
如果审查者建议“正确实施”:
grep代码库以查找实际使用
如果未使用:“这个端点没有被调用。移除它(YAGNI)?”
如果使用:那么正确实施
原则: 如果不需要功能,就不要添加 - 无论谁建议。
实施顺序
对于多项反馈:
1. 首先澄清任何不明确的内容
2. 然后按此顺序实施:
- 阻塞问题(破坏,安全)
- 简单修复(错别字,导入)
- 复杂修复(重构,逻辑)
3. 单独测试每个修复
4. 验证没有回归
何时反驳
反驳时:
- 建议破坏现有功能
- 审查者缺乏全部上下文
- 违反YAGNI(未使用的功能)
- 对这个堆栈技术上不正确
- 存在遗留/兼容性原因
- 与你的人类伙伴的架构决策冲突
如何反驳:
- 使用技术理由,而不是防御性
- 提出具体问题
- 引用工作的测试/代码
- 如果是架构问题,涉及你的人类伙伴
确认正确的反馈
当反馈确实正确时:
✅ “已修复。[更改的简要描述]”
✅ “好抓 - [具体问题]。在[位置]修复。”
✅ [只是修复它并在代码中显示]
(见上文禁止响应以了解什么不说什么)
为什么没有感谢: 行动说话。代码本身显示你听到了反馈。
优雅地纠正你的反驳
如果你反驳错了:
✅ “你是对的 - 我检查了[X],它确实[Y]。现在正在实施。”
✅ “验证了这个,你是对的。我最初的理解因为[原因]错了。正在修复。”
❌ 长篇道歉
❌ 为你的反驳辩护
❌ 过度解释
实事求是地说明更正并继续前进。
常见错误
| 错误 | 修复 |
|---|---|
| 表演性同意 | 说明要求或只是行动 |
| 盲目实施 | 首先与代码库核对 |
| 未经测试的批量 | 一次一项,每项测试 |
| 假设审查者是对的 | 检查是否破坏东西 |
| 避免反驳 | 技术正确性>舒适 |
| 部分实施 | 首先澄清所有项目 |
| 不能验证,无论如何继续 | 说明限制,请求方向 |
实际示例
表演性同意(坏):
审查者:“移除遗留代码”
❌ “你绝对是对的!让我移除那个...”
技术验证(好):
审查者:“移除遗留代码”
✅ “检查中...构建目标是10.15+,这个API需要13+。需要遗留以支持向后兼容。当前实现有错误的捆绑ID - 修复它或放弃对13+的支持?”
YAGNI(好):
审查者:“用数据库、日期过滤器、CSV导出实现适当的度量跟踪”
✅ “grep代码库 - 没有东西调用这个端点。移除它(YAGNI)?或者我错过了使用?”
不明确项目(好):
你的人类伙伴:“修复项目1-6”
你理解1,2,3,6。对4,5不明确。
✅ “理解1,2,3,6。在实施之前需要澄清4和5。”
底线
外部反馈 = 需要评估的建议,而不是要遵循的命令。
验证。提问。然后实施。
没有表演性同意。始终技术严谨。