《道德经》第4章,老子写得很像在描述一个“底层系统”。

169 阅读12分钟

《道德经》第 4 章:真正厉害的系统,都懂得留白

道冲,而用之或不盈。
渊兮,似万物之宗。
挫其锐,解其纷,和其光,同其尘。
湛兮,似或存。
吾不知谁之子,象帝之先。

《道德经》第四章,老子写得很像在描述一个“底层系统”。

它不抢存在感,不站到台前,也不把自己塞得满满当当。

但真正要用的时候,你会发现它一直在那里,而且怎么用都用不尽。

这很像一个好的技术平台,一个好的产品底座,一个好的团队机制。

平时它不吵,不炫,不总是跳出来证明自己。但业务要扩展、系统要承压、团队要协作、问题要排查时,它能稳稳托住一切。

第四章最适合讲一个技术人很容易忽略的能力:

不要把系统做满,要给系统留下余量;不要只追求锋利,要学会化解复杂度。

很多系统一开始不是死于能力不足,而是死于太满。

排期太满,团队没有缓冲。
功能太满,用户没有呼吸感。
代码太满,修改没有空间。
架构太满,变化没有退路。
人心太满,协作没有余地。

老子说“道冲,而用之或不盈”,放到今天的技术世界里,就是一句很朴素的话:

真正有生命力的系统,不能被一次设计、一次版本、一次增长、一次绩效填满。

先解释原文:“冲”不是空虚,而是有余量

“道冲,而用之或不盈。”

这里的“冲”,可以理解为虚、空、容纳、不满。

但它不是没用的空。

它更像杯子里的空间。杯子真正能装水,不是因为杯壁,而是因为中间有空。房子真正能住人,不是因为墙体,而是因为里面有空间。一个系统真正能扩展,也不是因为写满了功能,而是因为它还有余量。

所以“道冲”不是空虚,而是一种可用的空。

技术人应该很懂这件事。

服务器 CPU 长期跑到 95%,看起来资源利用率很高,其实非常危险。
数据库连接池一直打满,看起来机器没有浪费,其实随时可能雪崩。
研发排期每个人都排到 100%,看起来效率很高,其实一个线上故障就能把全队打乱。
产品页面塞满入口,看起来功能丰富,其实用户根本找不到重点。

“满”有时候很诱人。

它让人觉得没有浪费,觉得很充实,觉得团队很忙,觉得系统能力很多。

但从系统角度看,太满就是脆弱。

因为没有缓冲,就没有应对变化的能力;没有空位,就没有生长的可能;没有余量,就没有长期稳定。

一个成熟的程序员,不会只追求把机器资源榨干。
一个成熟的产品经理,不会只追求把页面入口填满。
一个成熟的管理者,不会只追求把每个人的时间排满。

真正高级的设计,往往是敢于留出一部分“不被占用”的空间。

好架构不是无所不能,而是不会被轻易填满

很多人刚开始做架构设计时,会有一种冲动:

我要把未来可能发生的情况都考虑进去。

于是方案里开始出现各种抽象:

  • 通用配置
  • 动态规则
  • 插件机制
  • 多租户模型
  • 策略模式
  • 流程编排
  • 权限矩阵
  • 扩展点
  • 领域事件
  • 中台能力

这些东西本身都没有错。

问题是,如果业务还没长到那个阶段,过早把所有未来都塞进当前系统,系统就会变得很重。

表面上看,它很强大。
实际上,它可能很难懂、很难改、很难测、很难交付。

这不是“道冲”,这是“道满”。

好的架构不是一开始就包办所有未来,而是在关键位置留下变化空间。

比如:

  • 当前先用简单模型,但把边界划清楚
  • 当前先不做插件化,但避免核心逻辑到处复制
  • 当前先不做复杂权限矩阵,但保留权限判断的统一入口
  • 当前先不做完整工作流引擎,但不要把流程状态散落在各处
  • 当前先不拆微服务,但模块之间不要互相穿透

这就是“用之或不盈”。

你没有把系统一次性设计到满,但当需求来了,它还有承接变化的地方。

很多架构事故,不是因为当初没想到未来,而是因为当初太想控制未来。

你越想一次性把未来写死,未来越容易反过来惩罚你。

系统要有边界,但不要过早封死;要有结构,但不要把结构变成枷锁;要有能力,但不要把能力堆到没人能理解。

真正好的架构,常常不是看起来最华丽的那一个,而是几年以后大家还敢改、还敢用、还敢扩展的那一个。

“挫其锐”:把系统的尖刺磨掉

“挫其锐。”

这句话特别适合讲工程设计。

一个系统最危险的地方,常常不是它整体都很差,而是某些边缘特别锋利。

所谓“锋利”,就是一不小心就会伤到使用者、维护者或者系统本身。

比如:

  • 一个参数传错,直接删除线上数据
  • 一个配置开关打开,影响所有租户
  • 一个接口没有幂等,重复请求造成重复扣款
  • 一个默认值太危险,新人很容易误用
  • 一个后台按钮没有确认,运营误点后无法恢复
  • 一个脚本没有环境校验,本地命令能打到生产

这些地方就是系统的“锐”。

程序员不能只追求功能可用,还要想办法把这些尖刺磨掉。

可以怎么磨?

  • 危险操作加二次确认
  • 关键接口做幂等
  • 高风险配置加权限和审计
  • 默认值尽量保守
  • 删除操作提供软删除或可恢复机制
  • 发布前做环境校验
  • 失败时给清楚的错误提示
  • 对外接口减少容易误解的参数

这就是“挫其锐”的工程版本。

不是让系统失去能力,而是让能力不那么容易伤人。

一个真正成熟的工具,不是功能越强越好,而是强大但不危险。

很多内部后台、脚本平台、配置中心,最开始都是为了提高效率。可如果不“挫其锐”,它们很快会变成事故制造机。

产品经理也要理解这点。

有些功能看起来很爽,但对用户很锋利:

  • 默认勾选自动续费
  • 取消入口藏得很深
  • 弹窗不断打断用户
  • 重要信息用小字隐藏
  • 错误提示只告诉用户“操作失败”
  • 用户误操作后没有撤销机会

短期看,这些设计可能提高转化。长期看,它们会消耗信任。

一个好产品,应该减少用户被系统“割伤”的机会。

“解其纷”:不要只堆人,要解开复杂度

“解其纷。”

纷,是缠在一起的东西。

技术项目里最常见的痛苦,就是复杂度缠成一团。

一个需求牵动十几个系统。
一个字段被五个团队解释成不同意思。
一个页面同时服务用户、运营、销售和财务。
一个接口既查数据,又写状态,还顺手发消息。
一个模块没人敢动,因为谁也说不清它到底影响哪里。

这种时候,很多团队的第一反应是加人、加会、加流程。

但复杂度如果没有被解开,加人只会让沟通更复杂,加会只会让信息更混乱,加流程只会让大家在流程里消耗。

“解其纷”不是把问题压下去,而是把缠在一起的东西拆开。

比如:

  • 把概念说清楚:同一个词在不同团队里是不是同一个意思
  • 把边界拆清楚:这个模块到底负责什么,不负责什么
  • 把状态理清楚:一个对象从创建到结束有哪些确定状态
  • 把链路画清楚:一次请求经过哪些服务,谁依赖谁
  • 把责任定清楚:出问题时谁感知,谁处理,谁兜底
  • 把数据源定清楚:哪个系统是主数据,哪个系统只是缓存或展示

很多时候,真正的效率不是“大家更努力”,而是“事情终于被拆清楚了”。

这也是产品经理非常重要的能力。

用户说一个问题,背后可能混着多个问题:

页面不好用。

这句话里可能包括:

  • 找不到入口
  • 文案看不懂
  • 加载太慢
  • 结果不符合预期
  • 权限不足但没提示
  • 操作成功后没有反馈
  • 用户其实不知道下一步该做什么

如果不“解其纷”,你可能会直接改 UI,最后发现问题还在。

真正好的产品分析,是把一团模糊的不满拆成可理解、可验证、可解决的问题。

“同其尘”:别只活在理想模型里

“同其尘。”

尘,是现实,是现场,是那些不完美、琐碎、混乱、带着历史包袱的东西。

做技术的人,很容易喜欢干净模型。

领域模型要优雅。
架构边界要清楚。
接口语义要纯粹。
数据流向要单一。
状态机要闭合。

这些追求都很好。

但真实业务经常不那么干净。

老系统有历史债务。
客户有特殊流程。
运营有临时活动。
财务有对账要求。
销售有承诺过的例外。
用户有我们想不到的用法。

如果技术人只愿意站在理想模型里,就会很容易看不起现实:

这业务怎么这么乱?
这个需求怎么这么脏?
为什么不能按标准流程来?
当初是谁这么设计的?

但一个成熟的技术人会知道:现实的尘土里,藏着系统真正的约束。

“同其尘”不是向混乱投降,而是愿意进入现场理解混乱。

你要知道为什么会有这个特殊逻辑。
你要知道历史上发生过什么事故。
你要知道哪个客户为什么不能改流程。
你要知道运营为什么需要那个后台开关。
你要知道财务为什么坚持某个字段不能变。

只有理解现实,你才有资格改造现实。

产品经理更是这样。

很多漂亮的产品方案,一到现场就失效。不是方案不聪明,而是它没有同尘。

你设计了一套标准流程,但用户实际工作时网络很差。
你设计了一个完整表单,但一线人员根本没有时间填。
你设计了一个数据看板,但老板真正想看的是异常原因,不是漂亮图表。
你设计了一个自动化规则,但客服需要在特殊情况下人工兜底。

同尘,就是让产品和真实世界接触。

不接触尘土的产品,很容易干净但没用。

“湛兮,似或存”:好的系统,存在感反而很低

“湛兮,似或存。”

湛,是深而清。似或存,是好像存在,又好像没有强烈存在感。

这句话太适合描述好的基础系统了。

一个好的发布系统,平时不会让你天天感叹它多厉害。它只是让你稳定发布、可灰度、可回滚、可追踪。
一个好的权限系统,平时不会抢戏。它只是让该看的人能看,不该动的人动不了。
一个好的监控系统,平时很安静。它只在真正需要你注意的时候提醒你。
一个好的设计系统,平时不需要反复讨论按钮长什么样。它让团队自然做出一致体验。

越好的底层能力,越不需要天天刷存在感。

这和很多糟糕系统正好相反。

糟糕的系统存在感很强。

每次发布都让人紧张。
每次配置都怕出事故。
每次查日志都找不到线索。
每次改需求都牵一大片。
每次排查都靠猜。

它存在感很强,不是因为它重要,而是因为它总在制造麻烦。

一个系统最高级的状态,不是大家天天夸它,而是大家能自然地依赖它,甚至忘记它的存在。

这也是团队管理的一个标准。

好的管理机制,不是天天提醒大家遵守流程,而是让流程本身顺手。
好的协作方式,不是天天强调沟通,而是信息自然流动。
好的质量体系,不是天天追着大家补测试,而是测试已经成为交付的一部分。

真正稳的东西,往往安静。

写在最后

“道冲,而用之或不盈”并不赞美空洞,它赞美可以继续容纳变化的空间。

系统有余量,故障来时才有缓冲;产品有留白,用户才看得见主线;人不把锋芒用尽,关系才有回旋。真正可靠的底座往往不喧哗,只是在复杂到来时,仍然给事情留着一条路。