与 AI 协作:一个具体的例子

查看原文 HN 讨论

文章摘要

htmx 作者 Carson Gross 在这篇文章里通过一个具体的 bug 修复案例,剖析了 AI 在编程中”强在哪里、弱在哪里”。他的核心论点是:AI 擅长调查性(investigative)和生成性(generative)的任务,但不擅长设计出优雅的解决方案;关键在于要有懂行的人来引导 AI 走向架构上合理的答案,而不是不加批判地全盘接受它给出的初版建议。

具体的例子是 hyperscript(一种解释型脚本语言)解析器里的一个 bug:fetch 命令中的 as JSON 修饰符绑定得太紧(binding too tightly)。Claude 很快定位到了根因——一次过于激进的重构错误地扩展了语法。然而 Claude 给出的初版修复要么过于狭隘(只针对上报的那个 bug,无法覆盖一般情况),要么引入了不必要的复杂度(连带禁掉了 go 命令中完全合法的 as 转换表达式)。

真正优雅的解法来自 Gross 本人:他意识到解析器基础设施中既有的 “follows” 机制可以更漂亮地解决这个问题,于是把这个特例精确地收窄到仅作用于 fetch 命令,不影响其他功能。他由此总结出几点体会:AI 能有效辅助调查和生成测试,但判断”什么才是架构上合适的方案”仍离不开人类专家;当开发者在不理解代码库的情况下接受次优建议时,技术债就会累积;对年长的开发者而言,AI 能缓解记忆力和精力的衰退,但也带来智力退化(intellectual atrophy)的风险——这就是”魔法师学徒”式的隐忧:一旦开发者把批判性判断力拱手让给自动化系统,问题就来了。

HN 评论精华

讨论以对作者的赞赏开场(hugeBirbAloysB 都表示喜欢这种”罕见的具体案例”),随后深入到”AI 为何不擅长设计”的成因辩论。