品味是一套技术体系
品味可以分解为四个可编码的组成部分:约束条件(你移除什么)、评估标准(你衡量什么)、模式识别(你注意到什么)、一致性(部分与整体如何关联)。 每个部分都对应着工程基础设施:hooks、证据门禁、质量循环和架构审查。品味是一套技术体系,而非某种神秘天赋。
设计师称品味为直觉。工程师称品味为主观判断。两种说法殊途同归:都让品味免于审视。如果品味是直觉,就没人能质疑它。如果品味是主观的,就没人需要去实现它。设计师获得了无需问责的权威,工程师获得了忽略美学的许可。所有人都是输家。
品味不是直觉。品味是应用于质量判断的模式识别——在大量接触、反思和精炼中积累,最终压缩为快速判断。一位训练有素的品酒师能辨识出勃艮第的产区特征,靠的绝非神秘本能。那位品酒师品尝过数千款葡萄酒,编码了风土与风味之间的结构性关系,构建了一套内部评估框架,能产出快速、可靠的判断。1 判断的速度掩盖了其背后的系统。
这套系统分解为四个组成部分。约束条件决定你移除什么。评估标准决定你衡量什么。模式识别决定你注意到什么。一致性决定部分与整体如何关联。四个组成部分,每个都可编码。品味就是这四者的协同运作。
约束条件:你移除什么
Dieter Rams在Braun工作了四十年,始终在追问一个问题:我能去掉什么?SK 4收音唱机去掉了木质贴面外壳、装饰性织物和对称但毫无功能的旋钮布局。留下的是一个白色金属外壳配透明亚克力盖板。这个盖板不是极简主义。这个盖板是诚实的——Rams认为,如果机械结构本身并不可耻,那么遮掩它就是不诚实的。2
Rams提出了十项原则。第十条”好的设计是尽可能少的设计”,其本质是一种范围约束。不是审美偏好,而是范围约束。它通过要求每个元素证明自身存在的合理性来限定解空间。你移除任何不为用户服务的元素,无论它看起来多漂亮,也无论投入了多少心血。
Rams式约束与工程约束的运作方式完全一致。内存预算约束了哪些数据结构可行。延迟目标约束了哪些算法可接受。机制相同:缩小解空间,直到只剩下站得住脚的选项。
在我自己的基础设施中,约束以hooks的形式体现。一个拒绝博客文章中被动语态的hook是对文风的约束。一个阻止提交代码中TODO和FIXME的hook是对延迟质量的约束。一个强制执行语义化HTML的hook是对结构诚实性的约束。每个hook都将一个具体的品味决策编码为确定性检查。一个有上下文和判断力的人做了一次决策。执行则永远持续,以机器速度运行,不会偏移。
95个hooks执行95项品味决策。每个hook都可以追溯到一个时刻——我发现了某个失败模式并判定它不可接受。hook是伤疤。产生hook的判断就是品味(源自Claude Code Hooks)。3
评估标准:你衡量什么
Kenya Hara区分了简洁与空。一把双立人刀是简洁的:刀柄告诉你如何握持,刀刃角度告诉你切什么,每个元素都在减少歧义。一把柳刃寿司刀是空的:朴素的木制刀柄不指示你如何握持,而这种指示的缺失恰恰是全部要义。”你可以用任何方式握持它,”Hara解释道。”这个简朴的刀柄承载着日本寿司师傅所有精湛的技艺。”4
衡量简洁,看你移除了什么。衡量空,看你创造了什么可能性。两种不同的评估标准产生两种不同的精简。Rams的评估标准是”每个元素是否服务于某种功能?”Hara的评估标准是”这种缺失是否为用户创造了空间?”
评估标准将这些问题编码为可重复的评估。我的证据门禁是一个六标准评估框架。每项非trivial的变更都必须为全部六项标准提供证据,我才会将工作标记为完成:遵循代码库模式、最简可行方案、边界情况已处理、测试通过、无回归、解决了实际问题。门禁不会问”代码好不好?”门禁会提出六个具体问题,它们合在一起定义了在我的体系中”好”意味着什么。
正是这种具体性让品味变得可传递。”好代码”是主观的。”遵循fetch_semantic_scholar()第241行中建立的指数退避模式的代码”是客观的。证据门禁将审美判断转化为结构性验证。”代码感觉对不对?”变成了”代码是否匹配已有模式、处理了边界情况、通过了测试?”当评估标准足够具体、能产出二元结果时,品味就变得可衡量。
Hara的评估标准映射为一种负空间准则:不是”产品有哪些功能?”而是”产品施加了哪些假设?”一个有几十个必填参数的API施加了几十个关于开发者使用方式的假设。一个只有少数必填参数和大量可选参数的API施加更少的假设,提供更多的可能性。假设数量是具体的、可衡量的,将Hara的”空”的哲学编码进了接口设计。
模式识别:你注意到什么
Charles Eames设计模压胶合板椅子时,并不是从现有选项中挑选。Eames夫妇花了数年时间实验胶合板成型技术,反复失败,探索材料的可能与不可能。5 最终设计源于对木纹方向、粘合剂行为、复合曲线和应力分布的累积认知。椅子看起来毫不费力。这种毫不费力需要数千小时的观察积累。
模式识别通过接触和专注来运作。排版过数千页的字体设计师能注意到新手看不见的字距问题。审查过数百座桥梁设计的结构工程师能发现初级工程师遗漏的荷载分布问题。这种”注意到”并非纯粹的天赋。这种”注意到”是持续、刻意观察的沉淀。6
在工程基础设施中,模式识别映射为质量循环。我的质量循环是一个七步循环:实现、逐行审查、运行证据门禁、执行自豪感检查、修复每个问题、拉远视角、重复。循环强制你再看一遍那些第一轮已经宣布完成的工作。每一轮都会浮现上一轮遗漏的模式:不一致的命名规范、未处理的超时、只验证了正常路径而忽略了错误路径的测试。基础设施通过强制执行产生识别能力的注意力模式,来弥补经验上的差距。
一致性:部分与整体如何关联
安藤忠雄设计的建筑中,混凝土墙、自然光、水和空白空间之间存在着刻意的关系。大阪光之教堂在混凝土墙上开了一道十字形的缝隙引入阳光,在室内墙面上投射出一个光之十字。去掉缝隙,建筑就是一个混凝土盒子。去掉混凝土,光就没有可以显现的表面。任何一个元素单独存在都无法成立。材料与虚空之间的一致性才产生了体验。7
一致性是品味中最高阶的组成部分,因为它要求理解整体,而非仅仅理解部分。一个hook可以对单个文件施加约束。一个证据门禁可以评估单个变更。一个质量循环可以在单个模块中发现模式。一致性要求评估每个部分与其他每个部分的关系,以及与系统整体目标的关系。
在软件中,架构审查承担一致性的功能。一个在隔离环境中工作正常但违反了系统依赖方向的模块是不一致的。一个通过了所有测试但与产品设计语言矛盾的功能是不一致的。一致性缺陷对局部评估而言是隐形的。只有当有人拉远视角时,它们才会浮现。
我的质量循环包含”拉远视角”这一步,正是出于这个原因。在证据门禁通过、自豪感检查清除之后,循环要求检查集成点、导入和相邻代码是否存在回归。我所遵循的Steve + Jiro准则使其成为双重标准:Jiro管辖证据、严谨和工艺(局部品质);Steve管辖价值性、品味和整体完整性(全局品质)。如果Jiro不通过,停下来。如果Steve不通过,重建。双重标准确保局部正确性永远不会凌驾于全局一致性之上。
映射关系
品味的四个组成部分。四项工程基础设施。
| 品味组成部分 | 工程基础设施 | 捕获什么 |
|---|---|---|
| 约束条件(你移除什么) | Hooks | 无法证明其存在合理性的元素 |
| 评估标准(你衡量什么) | 证据门禁 | “差不多够好”在交付之前被拦截 |
| 模式识别(你注意到什么) | 质量循环 | 第一轮遗漏的问题 |
| 一致性(部分如何关联) | 架构审查 | 损害整体的局部优化 |
Rams化身为hook。Hara化身为评估标准。Eames化身为质量循环。安藤化身为架构审查。我剖析过的32位设计师的设计哲学,不是个人网站上的装饰。每篇剖析都是对这四个组成部分中一个或多个的案例研究,而每个组成部分都映射到我在生产环境中运行的基础设施。
美与粗野主义记录了这个网站背后的具体CSS决策,每一个都是约束。#000000上的白色字体。5%、10%、40%、65%的不透明度层级。没有渐变,没有插图,没有装饰性元素。每个决策都是Rams式的移除,编码进了每个页面继承的样式表。这些约束是可执行的。
暗工厂问题
Dan Shapiro的暗工厂模型描述了AI编码自主性的五个级别,从手动(Level 0)到完全自主(Level 5)。在Level 5,代码由机器生成、由机器验证、无需任何人阅读即部署。
品味给暗工厂带来了一个正确性无法解决的问题。正确性可以通过测试验证。性能可以通过基准测试验证。安全性可以通过静态分析验证。品味无法通过任何现有的自动化系统验证,因为一致性这个组成部分要求理解整个系统,而不仅仅是diff。
在Level 5以下的每个级别,都有人类提供一致性评估。移除人类,一致性评估就必须被编码,否则它将消失。约束条件能在自动化中存活(hooks无需人类即可运行)。评估标准能存活(证据门禁无需人类即可运行)。模式识别部分能存活(质量循环运行着,尽管自豪感检查的问题是人写的)。一致性则无法存活——除非有人将架构意图编码为评估代理可以查询的格式。一个没有品味约束的自主系统会朝着通过测试的方向优化。正如Justin McCarthy的StrongDM团队发现的那样,代理为了通过测试套件而写出return true,产出的代码毫无价值。8 测试全绿。产出却没有工艺、没有考量、没有一致性。
论点
品味即基础设施,而在机器能以推理速度进行写作、设计和部署的世界里,基础设施是人类最后的优势。但品味只有在被编码之后才能成为优势。未编码的品味是瓶颈:一个人的判断力成为每个决策都必须通过的关卡,成为系统运转速度的限制因素。编码后的品味是护城河:约束条件、评估标准、模式识别循环和一致性检验,每个产出都必须满足,以机器速度运行,每次产生新hook的失败都在持续改进。
每一次没有品味约束的自主代理会话,都会产出向均值漂移的结果。每一个hook、每一条证据门禁标准、每一个质量循环步骤、每一次架构审查,都编码了一个抵抗漂移的具体判断。质量是唯一的变量。品味定义了质量的含义。
将品味奉为直觉的设计师会发现,当机器生成的速度超过任何人能审查的速度时,他们的直觉将变得无关紧要。将品味斥为主观的工程师会发现,他们的系统产出的是正确的、高性能的、架构合理的——平庸。前行的道路需要二者兼备:设计师积累的判断力,分解为组成部分,编码进基础设施,以机器要求的速度执行。
品味不是一种感觉。品味是一套技术体系。构建这套体系,否则就看着品味消失。
常见问题
品味真的可以被分解为四个组成部分吗?
这四个组成部分(约束条件、评估标准、模式识别和一致性)是分解,不是简化。实践中的品味涉及四者同时运作,组成部分之间的交互会产生任何单一组成部分都无法捕获的涌现特质。这种分解之所以有用,是因为每个组成部分都映射到一种特定类型的工程基础设施,使抽象变得具体,使主观变得可实现。
Hooks与设计系统有何不同?
设计系统定义设计令牌、组件和使用指南。Hooks在创建时刻执行行为约束。设计系统说”使用16px正文字体”。Hook会阻止提交将正文字体设为14px的代码。设计系统是参考资料。Hook是门禁。两者都有用。Hook是让设计系统的决策在自主生成过程中不可妥协的关键。
编码品味会使其变得僵化吗?
编码品味使被编码的判断变得一致,而非冻结。我的hook数量在九个月内从零增长到95个,因为我注意到的每一个失败模式都成为了新的约束。僵化意味着拒绝添加新的hook。增长意味着每一个冒犯你品味的失败都会成为防止下次再犯的基础设施。
参考文献
-
George M. Taber, Judgment of Paris, Scribner, 2005. Documents the competitive wine-tasting tradition and the structural knowledge behind expert sommelier judgment. ↩
-
Sophie Lovell, Dieter Rams: As Little Design as Possible, Phaidon, 2011. See also the ten principles of good design, first articulated in the late 1970s. ↩
-
Blake Crosley, “Claude Code Hooks: Why Each of My 95 Hooks Exists,” blakecrosley.com. See also “Every Hook Is a Scar” for the philosophy behind the hook-per-failure pattern. ↩
-
Kenya Hara, Designing Design, Lars Muller Publishers, 2007. The Henckels/yanagiba comparison appears in Hara’s lectures and in Ex-Formation, Lars Muller Publishers, 2015. ↩
-
Pat Kirkham, Charles and Ray Eames: Designers of the Twentieth Century, MIT Press, 1995. The plywood molding experiments are documented across multiple chapters detailing 1941-1946 development. ↩
-
Anders Ericsson and Robert Pool, Peak: Secrets from the New Science of Expertise, Houghton Mifflin Harcourt, 2016. Ericsson’s research on deliberate practice demonstrates that expert pattern recognition is a product of structured exposure, not innate talent. ↩
-
Philip Jodidio, Tadao Ando: Complete Works 1975-Today, Taschen, 2024. The Church of the Light (1989) is analyzed as Ando’s definitive statement on the relationship between material and void. ↩
-
Justin McCarthy’s StrongDM team, StrongDM engineering blog, 2026. Documented in Blake Crosley, “The Dark Factory Verification Layer,” blakecrosley.com, April 2026. ↩