仓库源文

.. Kenneth Lee 版权所有 2017-2019

:Authors: Kenneth Lee :Version: 1.0

怎样讨论问题


有一位读者在我的Blog下说,我写的东西没有留下讨论的余地。这个话题很有趣,我这里 的讨论不针对他的说法,我只是借题发挥,说说怎么讨论问题这个问题。

正如我在上一篇《善行无辙迹》中描述的,言有宗,事有君,如果我们的宗和君是解决我 们要面对的问题,那么站在概念上来争对错,这样的讨论其实是没有意义的。

很多人很容易陷入这样一种误区:我用各种方法来“说”赢你,挑出你的破绽,最后说明我 是对的,我对了你就错了,所以我就安全了。如果你的“宗”和“君"是争抢舆论阵地,这还 能说有点效果(只能说“有点”,因为信不足焉,有不信焉,这个效果其实是非常有限的) ,如果不是,这种赢了能带来什么好处呢?你还不如不浪费时间一开始就别讨论,直接在 脑子里说自己赢了不就好了?

作为软件架构师,我的设计经验是,设计大方向(至少在开始的时候)其实是很无所谓的 ,比如我最近在设计一个加速器框架,我是基于一个私有协议做通讯还是基于OpenCL来做 呢?这是个大决策,我先做了一堆的市场调查,然后判断说,我们还是通过一个私有协议 ,然后开源,把这个私有协议做成公共协议。这看起来是个严肃的判断,但这个判断对我 来说其实是说变就变的,根本无所谓,在这背后,我其实更关注的问题是,这样的框架, 在支持CCIX的时候如何发现设备,如何和SVM互通?在支持Gen-Z的时候是否能保证内存能 被刷到加速器一侧?和OpenSSL适配的时候能不能不用拷贝,能否直接使用OpenSSL自己分 配的内存?在和Docker以及KVM适配的时候还能不能正常工作?Xen还有没有前途?我是放 弃Xen(EL2 Kernel特性已经放弃Xen了)还是进行有限支持?……

这些东西,才是问题的关键,如果我发现推演下去,还是走纯粹的OpenCL路线有前途,我 说翻脸就可以翻脸的。但在这之前,所有的投资,都会被“私有协议”这个方案所驱动(这 本身会改变路线的筹码)。

所以,对架构师来说,“大逻辑”是有余地的,这样才不会“数穷”,所以我们才这么反对人 们太容易被一些死概念所绑死。对我们来说,我们更关注在这个过程中发现的“中间判断” ,因为那不是“学”,那是道。比如“现在Linux 4.12主线上,除了Intel,其他平台(包括 AMD)都无法支持SVM”,这是个事实,这个事实就是我的“大逻辑”必须“顺从”的“道”。我 并不会知道所有的事实,事实是在投资的过程中不断被发现的,没有“大逻辑”,我不知道 需要发现什么“事实”,但“事实”才是保证我达成目标的关键。所以,说到最后,还是那句 话:大道曰守,当时曰行。我们不能没有战略光有战术,也不能没有战术光有战略。

讨论问题这个问题一样的。我在这里写一个Blog,其实是拉起一个基本逻辑链,这是“为 学”,这个“对不对”?至少对我来说,这是无所谓的,我着眼的是这个逻辑的破绽在哪里 ,有没有余地修补。我们是通过学来发现道,而不是把“学”本身建得漂漂亮亮。

所以,我认为我写的Blog每一篇都留下的很大的余地的,如果要讨论,有这样一些方法:

i. 你认为这个Blog的逻辑链整个就不好,你重新写一个,展示:你看,好的逻辑链应该 是这样的。这时,如果我们讨论的不是同一个“君”和“宗”,或者我们互相觉得名称空间差 太远,我们就不用浪费时间了,不讨论这个问题就完了。否则,就该我来挑你的破绽了。

ii. 你找到了破绽,指出这个破绽,然后我们讨论这个破绽,修复,改向,或者放弃这个 逻辑链。

iii. 你不知道我说的是什么,确认我的描述要表达具体指向,我回应这个问题

这样就是“讨论问题”了。这样“讨论问题”下去,我们就共同拥有一个符合我们双方的“道” 的一个逻辑空间,而不是符合某个人的“学”的名称空间。符合“学”的名称空间,即使再好 看,对我来说,垃圾而已。

其实,这也是开源的精髓,很多人以为别人开源,是为他人做贡献,其实开源是让参与方 进入同一个名称空间,而主要贡献者,拥有一个最符合他的“道”,而其他人只能依附的名 称空间。这个名称空间成为主流的时候,符合最多他的“道”的人在这个系统中拥有最多的 “德”!

所以,我们要有能力建立这样的认识模型:

而不是:

……

在我私下的名称空间中,我也简单分类,这都是“智障”。

总结起来:分类永远是必须的,只是这个分类建立的“学”,是否符合你的“道”。你不要在 被“道”修理的时候哭就行了。

.. vim: tw=78 fo+=mM