你无法为品味做单元测试
“品味”的本质以及它是否可测试
- 许多人认为你无法完全通过单元测试来测试品味,因为:
- 品味是你忘了写进规格,或者根本无法清楚表达出来的那部分。
- 规则会需要例外,而例外又取决于上下文判断;剩下的就是“品味”。
- 你只能外化出一小部分类似规则的切片;其余部分仍然是隐性的。
- 也有人反驳说,有些部分可以被编码:
- 成对的“喜欢或不喜欢”比较可以训练机器学习评分函数。
- 风格指南、模式语言和 UI 指南能捕捉一些共有标准。
- Linter 和脚本可以强制执行约定(命名、品牌色、层边界)。
AI、LLM,以及个人/组织品味
- LLM 被描述为很强,但仍停留在“聪明的新员工”水平:
- 没有持久的、个性化的长期记忆。
- RL / 反馈往往会平均化为通用风格,而不是某一个人的品味。
- 除非受到严格治理,模型经常会做出自信但没品味或有风险的决策。
- 提出的做法:
- 为每个人/团队分别训练偏好模型;当它们不一致时就失败。
- 使用 agent,再配合人类“门禁”或验证工单,在关闭工作前进行检查。
- 把 LLM 当作初级开发者;把决策写进 ADR/文档里,让它们照着执行。
测试哲学与 TDD 的边界
- 测试被认为是确保事情“不是错的”,而不是让它们“很好”或有品味。
- 重度 TDD 和底层单元测试受到批评:
- 正确性不会整齐地组合起来;涌现行为会出现在更高层级。
- 过度 mock 和 100% 覆盖率目标会降低信心并拖慢变更。
- 也有人为 TDD 辩护,前提是它应用在合适的抽象层级,并且用于修复 bug。
- 对于图形/UI,建议使用快照测试和视觉回归,但它们无法捕捉“感觉对不对”。
UX、视觉与“感觉”
- 许多人指出,AI 生成的 UI/图像常常让人感觉廉价或不对劲。
- 有些人认为,只要有足够多带标签的示例,神经网络就能识别出“俗气”之类的品质。
- 工具可以测试客观方面(颜色、布局一致性),但主观的 UX 摩擦仍然需要人类判断。
直觉、拟人化与务实主义
- 人类直觉(例如感知结构失效)被类比为品味:扎根于经验,但难以编码。
- 与 AI 协作者一起使用“我们”这一说法,引发了对细微拟人化的担忧。
- 不少声音主张接受“足够好”,把 AI 当作辅助工具,而由人类保留最终品味和治理权。