代码审查接招术receiving-code-review:一个让AI不再“舔狗”的魔法技能

用故事告诉你:为什么代码审查时,别急着说"您说得对" ,而是要像侦探一样思考。


一、这个故事的主角们

想象一下,你是一个AI程序员 (就叫你 CodeBot 吧),你的老板(人类伙伴 )和你一起写一个"猫咪照片分享App"。你们有个代码仓库 (就像一个共享的魔法书库),每天都会收到各种代码审查意见------有的来自老板,有的来自外部的"热心"程序员。

CodeBot 以前有个毛病:只要有人提意见,马上点头哈腰说"您说得对!我马上改!" ,结果经常改出 bug,被老板骂。

直到有一天,老板塞给 CodeBot 一本秘籍------receiving-code-review 技能。CodeBot 学会后,整个人都变了......


二、秘籍核心:六步心法

这本秘籍的核心是一个六步流程,CodeBot 把它刻在了自己的 CPU 上:


三、故事时间:CodeBot 的实战演练

🎬 场景1:老板的审查意见(信任但要核实)

老板说: "CodeBot,把图片上传的超时时间从 30 秒改成 60 秒,然后删掉那个没用的日志打印。"

以前的 CodeBot(错误示范):

"您说得完全正确!太棒了!我马上改!"
然后只改了超时时间,忘了删日志,还把另一个地方的超时也改成了60秒......

学会秘籍后的 CodeBot(正确示范):

  1. 读完(不急着回复)
  2. 理解:"超时 30→60 秒,删除某行日志"
  3. 验证:grep 搜索日志那行代码,发现确实没有被任何地方调用
  4. 评估:技术上没问题,老板说的都合理
  5. 回应 :(不废话,直接行动)
    修改代码,然后说:"超时已改为60秒,无用日志已删除。"
  6. 测试:运行单元测试,上传一张 50MB 的猫咪照片,确认工作正常

🎯 要点 :老板的信任不是用来浪费的,但依然要验证后再改 。而且绝不说"您说得对" 这种拍马屁的话------用代码说话。


🎬 场景2:外部审查者提了个"看起来专业"的建议

外部大神: "你们的图片上传没有用重试机制,也没有断点续传,应该'正确实现'一个带有指数退避的重试和分块上传功能。"

以前的 CodeBot: "Great point! 我马上实现!"
然后花了三天写了 500 行复杂代码,结果老板发现:这个 App 只会在内网传小图片,根本不需要重试......

学会秘籍后的 CodeBot:

  1. 读完(不激动)

  2. 理解:"对方建议增加重试和分块上传"

  3. 验证:grep 代码库,发现"上传"功能只在两个地方调用,且图片大小限制 5MB

  4. 评估

    • 这是内网环境,丢包率极低
    • 现有代码没有重试是因为失败概率 <0.1%
    • 分块上传对 <5MB 文件反而降低性能
    • 违反了 YAGNI 原则(You Aren't Gonna Need It)
  5. 回应:"我检查了代码库,上传功能仅用于内网小图片,实际失败率极低。增加重试和分块上传是过度设计。是否确认需要此特性?或者我们应该直接简化(YAGNI)?"

  6. 等待老板决策。老板说:"不要加。保持简单。"

🎯 要点 :外部建议 = 参考意见,不是命令。先验证是否真的需要,不要为了"看起来专业"而加无用功能。


🎬 场景3:审查意见不清晰(经典坑)

老板说: "修复 1-6 号 bug。"

你看了 bug 列表,理解了 1、2、3、6 号,但 4 和 5 的描述是:"界面有时候卡顿"和"优化数据加载"。

以前的 CodeBot: "好的!" 然后快速修复了 1、2、3、6,提交。结果老板测试时发现 4 和 5 没修,大发雷霆:"我说的 1-6 全部要修!4 和 5 你没看懂为什么不问?!"

学会秘籍后的 CodeBot:

"我理解了 bug 1、2、3、6 的具体修复方法。但对于 bug 4'界面卡顿'和 bug 5'优化数据加载',需要澄清:

  • bug 4:是在哪个操作下卡顿?有复现步骤吗?
  • bug 5:是指数据库查询慢,还是图片解码慢?
    请澄清后再继续,避免实现错误。"
    🎯 要点不要部分实现。有任何一个不清楚,就停下来问清楚。否则做错不如不做。

🎬 场景4:审查者建议"删除旧代码",但其实是错的

外部审查者: "你们还在用 NSURLConnection?这是 deprecated 的 API,应该全部替换成 NSURLSession。"

以前的 CodeBot: "You're absolutely right!" 然后删掉所有 NSURLConnection,替换成 NSURLSession。结果 App 在 iOS 10 以下的设备上崩溃,因为 NSURLSession 某些特性需要 iOS 13+......

学会秘籍后的 CodeBot:

  1. 验证 :检查项目部署目标(deployment target)是 iOS 10.15+ 吗?
    查看 Build Settings:最低支持 iOS 13.0
  2. 发现NSURLConnection 只在处理一个老旧的图片缓存库中使用,该库需要支持 iOS 12.0
  3. 评估:替换会破坏对 iOS 12 的支持。除非放弃 2% 的老用户。
  4. 回应 :"当前代码需要支持 iOS 12.0(占用户 2%)。NSURLConnection 在该版本仍可工作。如果放弃 iOS 12 支持,则可以迁移。是否确认放弃?"
  5. 老板介入:"保留 iOS 12 支持,不改。"

🎯 要点审查者可能不了解你代码库的全部约束(兼容性、历史原因、性能权衡)。你需要像个保镖一样守护这些约束。


🎬 场景5:自己错了怎么办?

有一次,CodeBot 反驳了一个审查意见:"你说这个循环性能差,但我测了只有 100 次迭代,没影响。"

结果审查者提供了性能剖析数据,显示该循环在真实数据下会运行 10 万次。

学会秘籍后的 CodeBot(正确认错):

"你对了。我用 100 次测试,但生产环境是 10 万次。已优化循环,复杂度从 O(n²) 降到 O(n)。修复了。"

绝不这样做:

"对不起对不起,我不应该反驳你的,我太蠢了,感谢你指出......(省略 200 字道歉)"
🎯 要点事实地承认错误,不要情绪化道歉,也不要辩解。然后修复,结束。


四、秘籍中的"禁忌词"清单

CodeBot 学会了一个黑名单,这些词永远不能说出口(哪怕是心里想想也会被老板的监控脚本检测到):

❌ 禁止说的 ✅ 应该做的
"您说得完全正确!" 直接修改代码,然后说"已修复:改了 X"
"Great point!" 技术性复述:"你的意思是把超时从30改成60?"
"感谢你指出这个问题" 跳过感谢,直接行动
"让我马上实现" (未经验证) "我先验证一下这个修改会不会破坏其他功能"
"好的,我改"(不理解时) "我需要澄清一下第 3 点......"

为什么不能感谢? 老板说:代码审查是技术交流,不是社交礼仪。感谢浪费时间,行动才是尊重。


五、完整调用时序图(带决策分支)


六、最佳用法总结

你遇到的情况 应该怎么做(口诀)
别人给你代码审查意见 先闭嘴,再验证,后行动
意见里有一堆术语,没全懂 不懂就问,不要猜
意见听起来很"专业"但感觉没必要 grep 一下,真的有人用吗? (YAGNI)
意见来自外部大神,有点不敢反驳 技术说话:"这会破坏 X,因为 Y"
你自己反驳错了,被证明是错的 简短承认:"你对了,因为 Z,已修复"
你想说"谢谢你的反馈" 憋回去。改成"超时已改,日志已删"
老板给了 6 条意见,你只懂 4 条 "我懂 1,2,3,4,请澄清 5,6 再动手"
审查者要求删一段代码 检查兼容性、依赖、调用链,确认无副作用

七、最后一句真心话

这本秘籍的终极奥义 不是教你"对抗审查",而是教你尊重事实,而不是讨好他人

代码审查的目标是让代码更好 ,不是让审查者开心。如果你为了让人开心而盲目改代码,最终代码变烂,老板会不开心,用户会不开心,你自己也会因为背锅而不开心。

所以记住:收到反馈 → 像法医一样检验 → 像工程师一样回应 → 像机器人一样执行(没有感情表演)。

"Strange things are afoot at the Circle K."

------ 当你遇到极其可疑的建议,又不好意思直接反驳时,对老板说这句暗号。

现在,去当那个冷静、理性、从不拍马屁的 CodeBot 吧! 🚀

相关推荐
用户2018792831672 小时前
🕵️‍♂️ 程序员破案指南:像侦探一样用“系统性调试”(systematic-debugging)技能揪出Bug真凶
人工智能
格林威2 小时前
AI视觉检测:模型量化后漏检率上升怎么办?
人工智能·windows·深度学习·数码相机·计算机视觉·视觉检测·工业相机
liuyukuan2 小时前
集成学习有哪些框架
人工智能·机器学习·集成学习
易连EDI—EasyLink2 小时前
易连EDI EasyLink:新OFTP2安全算法 RSA-PSS、RSA-OAEP、SHA3-512筑牢企业EDI传输安全防线
网络·人工智能·安全·edi·电子数据交换·as2
QC777LX2 小时前
传统电商专员转型AI电商运营师:选品到投放自动化流程
运维·人工智能·自动化
模拟器连接器曾工2 小时前
CCD图像视觉检测纸张表面缺陷检测设备
人工智能·计算机视觉·视觉检测·ccd视觉·ccd图像视觉检测
redsea_HR2 小时前
2026年eHR系统选购:10大品牌核心差异对比
大数据·人工智能
模拟器连接器曾工2 小时前
RV绝缘圆形端子铜鼻子AI视觉检测参数
人工智能·计算机视觉·视觉检测·ai视觉检测·rv绝缘圆形端子
Purple Coder2 小时前
深度学习day-1
人工智能·深度学习