.. Kenneth Lee 版权所有 2017-2019
:Authors: Kenneth Lee :Version: 1.0
怎样修道
这个问题听起来特像神棍是不是啊?:)
我觉得看道德经多了,我也会像老子那孙子那样喜欢故意说一些容易引起误会的话,让傻 逼掉坑里面去。有时觉得,这些家伙不掉坑里面,也是出来祸害的,不如就留在坑里面对 大家都好。
举个例子,《道德经》里面说“知不知上”,其实这句话表述得更清晰一点,应该说的是: “知知者,与知不知者,皆善”。(我认为)这也是他的本意。但如果你确实明白这个道理 ,其实只跟你说“知不知上”,你也能理解他的逻辑,但理解问题死板的人,你给他说前面 那句话,他也不会理解这个意思,这种人,让他们不知道好了,他们不死在这个问题上, 也会死在另一个问题上,解释更多,你就只好取代他们生活了,你自己都活不过来,哪有 时间给他活?
想起讨论这个问题,源于最近和别人讨论一个产品的构架设计问题,有人谈到他们使用了 4+1视图,谈到了我们公司的架构Checklist,包括比如能耗比,可靠性,成本综合,客户 痛点等一系列的工程实践……等等等等,然后他们有了很多基于这个的设计,然后问我,这 个设计怎么样?
我就问了个问题:“你们到底想解决什么问题?”他们说,“其实我们关键是想进一步降低 功耗”,那我说,“那你告诉我,你们做的这些设计,到底能降低多少功耗呢?”,他们说 :“这短时间内也说不清楚啊”。那我问:“那你这个设计有什么意义?”
这就是我要讨论的问题。什么叫“知之为知之,不知为不知,是知也?”很多人把这个看作 是是对小孩子的谆谆教导,拜托,这是论语,是“大”学的内容,不是给小孩子听的。多少 大人都搞不清楚这个理念啊。“知不知,也是上”的核心观点在于:你决定自己做什么,不 需要什么都知道的。只要基于“知道”来做决策,你的决策就可以是正确的。怕只怕,你连 自己不知道什么都不知道,那你的决策就“病”了。
前面这个架构设计也是这个问题,你觉得“降低功耗”就是你要解决的问题,你就应该有合 理的逻辑来实现这个功能,不是做出一个“总体控制”的模样就可以“降低功耗”的。
比如说你要降低系统功耗,有很多手段,把硬件分布在不同是时钟域和电源域,对硬件进 行独立的时钟Gated,降低动态功耗,或者对电源Gated,降低静态和动态功耗。可以给 CPU和总线降频,可以给单个CPU核Idle,可以给整个CPU Cluster下电。可以进行应用在 CPU间迁移,可以在集群中给整个节点断点,可以在线优化虚拟机的调度,也可以离线分 析虚拟机的资源模型,然后重新调整VM调度器的调度算法……你总得在这些方案中找一个( 或者一些)出来,然后分析这个方案可以带来多大机会的成功,设计什么地方的技术突破 ……这些东西都没有,仅仅说降功耗是痛点,它真的是痛点吗?
能降低功耗当然是巨大的竞争力,问题是,如果你的竞争对手也降低不了功耗呢?如果你 投入80%的投资来降低1%的功耗,你的对手投入10%的投资来降低0.1%的功耗,然后用70% 的人力用来增加功能,然后这个功能被客户接受了,你就会在竞争中落败,你觉得这是你 的本意吗?
所以,架构工作不是虚无飘渺的,架构是实打实的设计,是和其他细节设计一样有非常坚 实的逻辑的。而这个逻辑的依托,必须是可知的“现实”,这就是“知不知,上”的根本。
同样的,道,就是现实。修道就是事与愿同。你必须设定一个“可知”的目标,然后用各种 手段让这个目标得以实现,这才是修道。反之,你靠解释来说你自己的“理论正确”,那不 叫修道,那叫做梦。正如《西游记》里面经常说的一句话:你怎敢说这等欺心之言(注: 西游记中用的是这个词的引申意)。你连自己的心都在欺骗,跟你还有什么可以“说”的? 那就拿武器干吧。
所以,你说你要飞升,你得真的给我飞起来,也不用给我飞,你自己确切知道你自己飞起 来就可以了(但你自己知道就好了,也不用来给我讲,因为既然你的目标是飞,你也飞起 来了,给我讲干啥?如果你非要给我讲,说明你的目标根本就不是飞升,你的目标是“让 我相信你飞升”,那是另一个逻辑,你自己知道你做得怎么样。我也知道你做得怎么样) 。你给我解释“我师傅如何如何”,“如果我打通了任督二脉就会如何如何”,“如果不是我 牵挂我的老母亲,我早就如何如何……”,“天机不可泄漏……”,“你看,我能从空盘里变出蛇 来……”……这东西有意义不?
同样,你做架构设计,你的目标就是产品的钱赚得多多的。什么符合业界规范,获得行业 最佳架构奖,满足了架构文档模板的要求,和《架构编档》的要求完全一致……这些东西和 架构做得怎么样,有一毛钱关系?
所以,怎么修道呢?修道是你找一个可知的现实,然后试图实现这个现实,因为这个现实 可以明确“可知”,所以你的所有行为,才是真的和现实互动,而不是和你的精神互动。在 这个过程中,你对“道”(现实)的理解越来越精确,然后你就可以“合道”了。而在每次“ 修”的时候,这个“道”本身是什么,反而不那么重要。但是如果不用现实来做支点,我就 奇了怪,你们根据什么来判断你那些理论不是你臆想出来的呢?你们在修啥玩意儿呢?
.. vim: tw=78 fo+=mM