你无法用单元测试来检验品味
文章摘要
(注:原文页面返回 403 无法直接抓取,本摘要依据 Hacker News 讨论中对文章的转述整理。)
这篇博客文章的核心论点是:像”品味”(taste)这样的主观品质,无法像客观功能那样通过自动化测试来验证。作者在一个地理空间(geospatial)项目中与 Claude 协作时发现,即便给出了明确的需求说明和单元测试,要确保设计决策”有品味”,仍然离不开人类的判断和反复的迭代反馈。
作者的观察触及了当下 AI 辅助编程的一个根本张力:功能正确性可以被断言和测试覆盖,但代码是否优雅、设计是否得体、取舍是否合理,这些”品味”层面的东西很难被形式化为可执行的断言。AI 能通过所有测试,却依然可能产出臃肿、缺乏审美的方案。因此文章主张,品味必须先被”外化”(externalize)成清晰的定义才有可能被检验,而人类的隐性知识(tacit knowledge)恰恰难以被完整地外化出来。
HN 评论精华
讨论围绕”品味到底能不能被写下来、被测试”展开,观点呈现出光谱式的分歧。
- trjordan(置顶评论,约 303 分)认为:只有先把品味外化为清晰定义,才谈得上测试;但完整外化所有隐性知识是不可能的——正如”调试一个系统比运行这个系统消耗更多资源”。根本困境在于人不是数据库,我们应该用工具,而不是反过来教工具来使用我们。
- bonzini 做了细分:编码层面的品味尚可通过文档和注释”描述”出来(比如识别某些细微的模式偏离),但设计层面的品味往往连一个确定的框架都没有,最后只能退回到神经网络里”不透明的权重”。
- fragmede 持较乐观态度:像 Apple 的《Human Interface Guidelines》就证明某些品味是可以被写下来的。虽然做不到完整的单元测试,但可以用”集成测试”式的手段拦住那些明显糟糕的品味不让它上线。
- paytonjjones 点出核心局限:LLM 缺乏个体化的长期记忆,它永远像”一个天赋异禀但永远处在入职第一天的工程师”,无法像人那样通过睡眠和记忆巩固逐渐吸收组织的上下文。
- timroman 补充了一个视角:品味来自跨项目积累的模式,而非孤立的规格说明——”单个项目里很容易做错,但把 100 个项目连起来看,那条趋势线才会显现出来”。