人的放纵是本能,自律才是修行。短时间让你快乐的东西,一定能够让你感到痛苦;反之,那些让你痛苦的东西,最终都能让你功成名就。低级的欲望,放纵即可获得;高级的欲望,只有克制才能达到。
——一段常被归于罗素的话
上周一个工程师跟我说:「我让 AI 写了一个模块,它给我吐了四万行代码。我看了两天,删了三万行。」
我问他:删的时候什么感受?
他说:「心疼。每一行看起来都有道理。但我知道如果留着,这个模块就死了。」
同一天晚上,我女儿问我一道数学题。她卡在第二步。我张嘴就要说「你试试把等式两边同时除以——」,话到嘴边咽回去了。我说:「你再看看题目里哪个条件你还没用上。」她想了四十秒,自己做了出来。
两件事。一个是删代码,一个是忍住不说。本质一样: 你有能力做,你选择不做。
放纵是本能
AI 的默认行为是加。
你让它写一个功能,它顺手给你搞个 Strategy Pattern、加个 Plugin 接口、留个 Hook、写三层抽象。它永远自信,永远「以防万一」。它没有 doubt。
家长的默认行为也是加。
孩子还没开口,你已经把答案递过去了。孩子还没摔倒,你已经冲过去了。孩子还没选错,你已经纠正了。你永远焦虑,永远「万一呢」。
这两种「加」有一个共同特征: 它们让施加者感觉良好。 工程师觉得「架构好完整」,家长觉得「我好负责」。四万行代码看起来比四百行「专业」。替孩子做完一切看起来比「袖手旁观」「称职」。
但感觉良好不等于结果正确。
InfoQ 最近一期圆桌里,腾讯的任磊达说了一句很真实的话:「我昨天一不小心烧了七八亿 token,给我吐了四万行代码,就一个很小的模块。这就是典型 Harness 失控。」
失控不是因为 AI 不够强。是因为 没有人踩刹车。生成侧的马力越来越大,验收侧的方向盘和刹车没跟上。
家庭教育一模一样。孩子的能力在长,你的干预如果不跟着收,就从「保护」变成了「窒息」。
克制的前提是能力
这里有一个容易被忽略的前提。
罗素说「文明是克制」,不是说「文明是无能」。一个手无缚鸡之力的人不伤害别人,那不叫克制,那叫没办法。一个有刀的人选择不捅,才叫克制。
映射到工程:你删掉一个 Strategy Pattern,前提是你 看得懂它。你知道它解决了什么问题,你知道它在什么场景下有价值,你承认它的设计是合理的——然后你判断:现在不需要。
如果你根本没看懂就删了,那叫无知。如果你看了觉得「算了懒得改」,那叫惰性。只有「理解→承认价值→仍然删除」这个三段式,才配叫克制。
映射到教育:你忍住不替孩子做,前提是你 知道答案。你知道正确的路径是什么,你知道他正在走弯路,你承认如果现在告诉他可以省二十分钟——然后你判断:这二十分钟的弯路比答案更值钱。
如果你自己也不知道答案,那不叫「给孩子空间」,那叫放任。如果你知道答案但懒得管,那叫忽视。只有「知道→忍住→观察」这个三段式,才配叫教育的克制。
克制是奢侈品。你必须先买得起,才有资格不用。
高级的欲望只有克制才能达到
那段归于罗素的话里,最锋利的一句是:「高级的欲望,只有克制才能达到。」
工程师的高级欲望是什么?不是「代码能跑」,是 系统能活。能活的意思是:三个月后新人来了能看懂,半年后需求变了能改,一年后回头看不会骂自己。
这个欲望,放纵达不到。放纵的产物是四万行「看起来都有道理」的代码。它今天能跑,明天就死了。因为没有人能维护一个自己都不完全理解的系统。
家长的高级欲望是什么?不是「孩子这次做对了」,是 孩子下次自己能做对。
这个欲望,干预达不到。你替他做对了一百次,第一百零一次他还是会卡住。因为他练的是「等答案」,不是「找答案」。
两种高级欲望的共同特征是: 它们的回报是延迟的。 删掉三万行代码,今天看起来「功能少了」。忍住不说答案,今天看起来「效率低了」。但三个月后、一年后,回报才兑现——系统还活着,孩子还会想。
低级的欲望,放纵即可获得:四万行代码,今晚就有。一个正确答案,三秒就有。
高级的欲望,只有克制才能达到。
Harness 的克制:不检查什么
在 代码是 AI 写的了,品味住在哪里 里我说过:克制是品味最贵的表达。在 好的 Harness 不挑笔 里我说过:harness 检查质量标准,不检查生成来源。
这两篇讲的是「该检查什么」。这篇补上另一半: 不该检查什么。
一个 CI pipeline 里,每多一条规则,就多三样东西:
+1 维护成本(规则本身要更新、要适配、要 debug)
+1 false positive 来源(误报训练人忽视真信号)
+1 认知负担(新人要理解「为什么有这条」)
# generated by hugo AI
我见过一个项目,CI 有 47 条自定义 lint 规则。跑一次 11 分钟。其中 14 条在过去一年里零触发——它们检查的问题从来没有出现过。但每次有人问「这条能不能删」,回答都是「万一呢」。
万一。这两个字是克制的天敌。
有品味的 harness 长这样:
| 维度 | 放纵型 | 克制型 |
|---|---|---|
| lint 规则 | 47 条,11 分钟 | 12 条,90 秒 |
| 测试 | 200 个,60 个 skip | 80 个,0 个 skip |
| release gate | 7 步人工审批 | 2 步自动 + 1 步人工 |
| 事故后 | 加 3 条规则 | 加 1 条,删 2 条旧的 |
最后一行是关键。有品味的工程师,事故之后不只加东西,还 删东西。因为新规则可能让旧规则变得多余。harness 的体积不是只增不减的——它需要修剪,像花园一样。
罗素 1932 年写《In Praise of Idleness》,核心不是「少干活」。是: 你删掉的那些东西腾出来的空间,才是判断力生长的地方。
一个被 47 条 lint 规则淹没的团队,没有余力去想「这个模块该不该存在」。一个被 200 个测试的 false positive 训练过的工程师,看到 CI 红了第一反应是「又是误报吧」,而不是「哪里坏了」。
不检查什么,和检查什么一样重要。不干预什么,和干预什么一样重要。
教育的克制:忍住的艺术
我不是教育专家。但作为一个写了二十年代码的人,我发现工程里的克制和养育里的克制,底层逻辑完全同构。
工程克制 教育克制
───────── ─────────
删掉不必要的抽象 忍住不替孩子做
让系统自己暴露问题 让孩子自己撞墙
事故后加一条、删两条 犯错后复盘一次、不唠叨十次
CI 只检查真正致命的 只干预真正危险的
信任测试而不是信任人 信任孩子而不是信任焦虑
# generated by hugo AI
有一个很具体的场景。
孩子写作文,写了一句很笨拙的话。你知道怎么改。你改一下,三秒钟,句子就漂亮了。
但你改了,他学到的是「我的表达不够好,大人会替我修」。你不改,他学到的是「这句话确实笨拙,但它是我的,下次我自己改」。
前者是四万行代码——漂亮,但不是他的。后者是四百行——笨拙,但活着。
你忍住的每一次,都是在给孩子的判断力腾空间。 就像你删掉的每一条 lint 规则,都是在给团队的注意力腾空间。
这不是「放养」。放养是没有能力干预。克制是有能力干预,选择不干预。区别在于:你 知道 正确答案是什么,你 评估过 不干预的风险是可承受的,你 决定 让他自己走这段弯路。
删除的勇气
回到开头那个工程师。
他说删三万行的时候「心疼」。这个心疼很真实。因为每一行代码都代表一个「可能性」——万一以后需要呢?万一有人问「为什么不做 X」呢?万一呢?
删除需要的勇气是: 你必须承认「这个东西不需要存在」。
这在「加了总没坏处」的文化里是反直觉的。加一条 lint 规则,最坏不过浪费几秒 CI 时间。替孩子做一件事,最坏不过「他少练了一次」。看起来都是「最坏也不过如此」。
但隐性成本不是这么算的。
四十七条 lint 规则的隐性成本不是 11 分钟 CI 时间。是 团队不再认真看 CI 结果了。因为误报太多,真的错误被淹没在噪音里。就像狼来了喊了四十七次,第四十八次狼真来了,没人跑。
替孩子做完一切的隐性成本不是「他少学了一个知识点」。是 他不再相信自己能解决问题了。因为每一次你冲上去,都在无声地说:「你不行,我来。」
罗素说「短时间让你快乐的东西,一定能够让你感到痛苦」。加东西是短期快乐——今晚 CI 全绿,今晚孩子作业全对。痛苦是延迟的——三个月后系统不可维护,三年后孩子不会独立思考。
反过来:删东西是短期痛苦——今晚 CI 少了一层「保护」,今晚孩子多花了四十分钟。快乐是延迟的——一年后系统还活着,十年后孩子还会想。
收束:品味、harness、克制
写到这里,三篇文章的逻辑闭合了。
317 说:品味从代码搬到了选择。
318 说:harness 不挑笔,检查质量不检查来源。
这篇说: 最高形式的品味和最高形式的 harness,是同一个动作——删除。
品味删的是不必要的抽象。Harness 删的是不必要的检查。教育删的是不必要的干预。
罗素给了这个动作一个名字:文明。
文明不是「人能做什么」的总和,是「人选择不做什么」的总和。你有能力加一个抽象层,你选择不加。你有能力替孩子做完,你选择不做。你有能力在 CI 里加第四十八条规则,你选择删掉第三十七条。
这不是极简主义。极简主义是「少即是多」,是审美偏好。克制是「我能,但我不」,是道德选择。
AI 时代,「能」的成本降到零。任何人都能让 AI 生成四万行代码、四十七条规则、四十个兴趣班。
「我不」的成本没变。它依然需要判断力、勇气和延迟满足的能力。
所以那段归于罗素的话,放在 2026 年的工程和教育里,比放在 1950 年更准确:
低级的欲望,放纵即可获得——让 AI 全加上,让孩子全听你的。
高级的欲望,只有克制才能达到——让系统活着,让孩子会想。
你的 CI pipeline 里,有没有一条规则你其实知道该删但一直没删?你作为家长,有没有一次「忍住没说」后来发现是对的?欢迎留言讨论。