仓库源文

.. Kenneth Lee 版权所有 2020

:Authors: Kenneth Lee :Version: 1.0

自由和约束


我负责架构和标准一类的工作,常常被人问这样一个问题:都自己单位,明明是自由的, 为什么在你这里变成这又不行,那又不行呢?

比如我从外面拿进来一个开源软件,这个软件的代码都在我手上了,为什么我不能爱怎么 改就怎么改呢?

又比如我做一个标准,既然都是自己单位的,为什么不能要求所有的产品都遵守这个标准 呢?

这又是个名和道的问题。道包含所有的细节,名仅仅是抽象。

我们简单分析一下这个区别,比如,我们讨论如何从家里去妇幼保健医院:下楼,坐223或 者44K,或者3号环线,到人民路下,穿过对角巷,过了马路就到了。

你走一次,这是道。你说出来,这是名。走就要处理所有细节,比如车满了,今天疫情严 重,公交车停开,路上你手机被人偷了,你进保健院的时候被狗咬了,你都到不了。平时 我们失败得起,这种计划差不多可以就可以了。但如果你这件事情很重要,比如你提前筹 划你待产的媳妇去产科的路线,计划这样做就不行了。

我们说键盘侠容易,下去干活的人难,原理就在这里。我们说某些东西是鸡汤,也是这个 原理,马云打太极能成为富翁,你打太极能成为老王,打太极是名,你们成为什么是道( 综合决定的)。

说的是名,做出来的是道,把道说出来,也是名,因为你说的里面不包含全部细节。

问题是,我们做方案都是名,我们怎么才能让我们的名靠近我们未来的道?名是“矛盾”, 是“左右”,是“问题”,但不是全部,我们担心我们只看到了名,到我们实施的时候被我们 没有意识到的(无名的)矛盾碰得头破血流。我们得让我们的名到实施的时候少些破绽。

我们得找到这其中的“主要矛盾和矛盾的主要方面”。

你从外面拿进来一个开源软件,你认为这个代码你原来改不了(在别人手上),现在这个 矛盾消除了,你就马上反过来认为你自由了?那么,你就要问这个问题了:为什么在别人 手上的时候,他们不这样改?

这个问题可能有几个回答:

这样改是不对的这样改破坏未来的发展这样改影响了效率他们缺乏人力他们认为那样改政 治不正确……

你看,这些矛盾本来就存在,只是原来被你代理为“代码不在我手上所以我改不了”而已, 你以为你消除一个名自己就是自由的,其实你根本不自由。就好像你妈妈不让你吃很多雪 糕,主要矛盾是你吃多了会吃坏肚子,不是妈妈怕花钱。

名字叠加了以后你看到第一个名字是障碍,但这个矛盾背后还有矛盾。

你定义一个标准,要求所有产品都要支持,那为什么你不把产品直接开发出来呢?因为你 代理不了产品啊。所以你就敢大言不惭觉得你的标准就可以轻轻松松强行在产品中实施? 从名到道,它需要磨平所有的矛盾才能到达啊。

这样的思考方法,就叫食母。食母的思维模式很简单,就是当你看到一个东西,认为它是 约束,那你就把它拿掉,看看你有完全的自由的时候,你是不是能干你原来干不了的事情 了,这样我们就可以把名一层层剥开,看到问题的“主要矛盾”和“矛盾的主要方面”在哪里 了。

最后再多说一个和构架设计无关的哲学主题。纯粹谈《道德经》。没兴趣的读者可以略过 。不知道读者是否注意到?:《道德经》这个名和道的原理:其实是完全排斥“因果”的认 知的。

我们大部分人认为这个世界上存在因果:因为我吃饭了,所以我饱了。

道德经不是这样看的,道德经认为,吃饭是一个名,饱也是一个名。吃饭并非饱的唯一原 因。因为它们都经过抽象了。我们只是从中捕获一个Pattern,觉得这个Pattern可以重复 而已。但这个并非事实。你饱是很多细节共同决定的,因果这件事根本就不存在。是你脑 子自己创造出来的,不是这个世界的事实。道德经是说,你任何时候做判断,不要认为因 果是必然存在的。因为这个因果也只是一个Pattern而已,你在找一个概率更高的Pattern 去遵循,而不是确定一个永恒不变的真理,因为你的脑子的唯一功能就是做Pattern,你把 某个或者某些Pattern定义为真理,你的Pattern集就被歪曲了,你不再用用完整的Pattern 去判断问题了。

所谓自然之道,就是每次决策就按当前拿到的Pattern来做判断,而不是尝试建立一个永恒 不变的真理模型,这里这个模型本身就造成你的Pattern无法匹配现实了。