DàYé首席路 | 架构界之六识(初篇)
佛性导读
道是什么?千年以降无人说的清,因为大道的境界最终归于“不可说”。圣者和先贤们一直在努力的告诉世人什么是大道,有佛祖释迦牟尼,有道教始祖老子。他们尽管有着不可思议的智慧和极其高明的说法善巧,依然不能告诉我们什么是大道。
佛与众生看到的世界是截然不同的,但是佛无法用语言把他看到的世界表述出来,这就是“言语道断”。好比方你如何对一个盲者描述红色,在盲者的世界里没有任何可以用之比喻的色彩,所以何之谓热情的颜色呢?
佛说:是法非思量分别之所能解,唯有诸佛乃能知之。
佛又说:诸有智者,要以譬喻而得开悟。
说白了就是即便我告诉了你大道,你也听不懂理解不了,你甚至还觉得我在忽悠,那就只有同样看到了大道的诸佛才能懂我了。
另外世人都是有智慧的,可以考虑用“譬喻”的方式来让世人开悟,别无他法了。我们看到佛经、道法、圣经等等书中大多都以比喻、寓言、典故这种方式来布道,不就是怕我们理解不了么?
接下来问题来了,如何譬喻呢?如何描述?如何表达?
佛说:不可说,开口即错。
老子说:道,可道也,非恒道也;名,可名也,非恒名也。
道无相无名、无来无去、非有非无、非色非空,所以道不可思不可议。禅宗六祖慧能大师开示学人时说要“因指见月”,不能“误指为月”。手指指向月亮,可以让从没有抬过头的人看到月亮,这里的月亮就是道,而指月之指并不是直接描述了月亮,你看到的月亮究竟是何模样,只有自己知道。
上面说的是道。理所当然的会出现布道这个行当,若是真·布道师,那他的道是不是以譬喻的方式传导给你的,也就是是不是通俗易懂的?还有一种真·布道师参照当年爱因斯坦发表广义相对论的时候没几个人懂,这种道是真的没办法譬喻,太超前了,容易被人当成江湖骗子。以上之外的布道都是虚妄,自己还没悟,就敢出来布...
接下来回归主旨,谈如何得道。
佛告诉我们,六根对六尘产生出的概念或体验,就是六识。通俗点说:
六根指我们的生理官能,眼、耳、鼻、舌、身、意;
六尘指刺激六根的外界的物质或思维,也叫六境,包括色、香、味、触、法(不可说);
六识对应的就是眼识(眼观色)、耳识(耳闻声)、鼻识(鼻嗅香)、舌识(舌尝味)、身识(身受触)和意识。到这里比较明确了吧,前五识是可以物理感受外界刺激的,而第六识是感受后形成的思维亦即意识,这是一个“转识成智”的过程。故六识是我们用于认识、理解世界的根本手段。
最后,上面的加粗都是为了布道的譬喻,都是假“名”,都是诸“相”。而凡有所相,皆是虚妄。到这里,把我上面的“指月之指”忘掉,感受你自己的“道”吧。
本文全剧终。
坚持到这里的读者,说明很有慧根,那我继续...
天地分六界:神 仙 人 妖 魔 冥。作为1024天选程序员的我斗胆给程序员天地分一下三界:码农界、架构界、趴趴梯界,逐层递进。相信这个“名”称在程序员天地里时间长河的当下是直接明了的(非恒名,后人不一定懂PPT这个梗)。
本系列就是准备讲讲在架构界想得道需要的“六识”,希望我不用“譬喻”也能讲明白一些道理吧,因为实在不怎么会讲故事...
眼 识
眼观色。
此色非彼色。这里的“色”指一切能见到或不能见到的事物和现象。这里的“不能见到”可以理解为藏在事物表象之下的内在。
那么一名合格架构师在眼识上应该做到那些呢?
1. 强悍的实战能力
关键词:强悍 & 实战。
架构师的架构能力一定要建立在实战之上,任何的空谈在实际落地过程中都会原形毕现。而强悍的实战只是区分一下你不能只是搭建起一个prototype,输出了一个hello world就完事了。这种实战不限于编码、疑难杂症排障、设计建模、运维、安全等等,且必须是实际操练过,踩过坑、流过血的,因为只有这样获得的根基才是最为牢靠的。
回到眼识,也是因为只有大量的实战磨炼才能让你看见“真正”的事物本源。所谓的因为看见所以相信,马云大大鸡汤的因为相信所以看见在架构界并不适用。是个人看几篇微服务的文章都可以“侃侃而谈”了,但是真正落地时服务注册应该选择CP还是AP,限流是用计数器还是令牌桶,开源框架选Dubbo还是SpringCloud...这还只是选择,选择后的玩法又有很多种,面临各种坑,拥抱实战,杜绝纸上谈兵。
2. 前瞻能力
包括技术前瞻和业务前瞻,两者不分主次。架构需要演进,不是也不可能一次性就设计出来。保持对新技术趋势的敏感度,持续对旧技术(相对新技术而言,并不是说旧就是不好)的补漏升级,才是常态。
在一些关键时点上必然要触发架构的演进,否则真的会死人。一如CSDN当年明文存储用户登录密码,就是不重视安全和架构升级导致。再如图计算和存储的出现,你的公司还在用关系型数据库硬跑几度社交网络?单机只能承受100TPS的并发请求,随着活跃客户数激增和营销活动的眼球效应,并发量预计随时可达10000TPS,多扩几个点来承担这些请求当然可以,但这不是前瞻,是亡羊补牢。
从我个人经验而言,至少能预规划出半年之内的架构演进路线,才算达到基本门槛,当然我们不推崇过度设计,太久了比如超过3年的规划个人感觉意义不大。你想,接管你设计的系统的下一波人,和你有不同口味的可能性十之八九,到时候面目全非、风格迥异,“凑”成的一个系统,最终结局除了重构一般不会有第二条出路。
3. 顾后能力
换个说法就是善于归纳总结,同一个坑不踩两次,优秀的架构不仅可以随时拿来,更能不断换代升级。顾后其实就是做一件事:参透经历过的事物的本质。这是一个剥洋葱的过程,很多时候你以为剥到的心儿往往还是个壳儿。比如系统的致命异常,本质是编码疏忽呢,还是设计的漏洞。如何应对疏忽是无法形成一套具体的方法论来指导日后行为的,而明确指出设计的漏洞却可以通过规范模式来规避日后可能再次出现的风险。
可以这么说,架构师的超强战斗力是在炮火连天、尸横遍野的战场上练就的。架构师应该对标青铜圣斗士,因为任何招式对星矢们只能使用一次,第二次无效。想来,应该是星矢他们在战斗的过程中已然参透对方招式的本质了吧?
参透本质之后如何将其梳理成体系化的知识结构,也是许多人包括我自己欠缺的。知识体系化后的好处:可以让自检索更迅速便捷,随时找出自己当前需要的最优解;可以面对未知仍能比较从容的找到相似解或者最短解决路径;可以让不同领域的知识融会贯通,这样可以越来越贴近事物本质。
总结一下,要修炼眼识,首先得通过各种高强度的实战训练,练就出一双火眼金睛;其次用这双眼睛,可预见未来走向;最后记录好这双眼睛看见的事物本源,搭建好自己的知识体系。你的眼界决定你的格局,你的视野决定你的高度。
不畏浮云遮望眼,自缘身在最高层。
-王安石《登飞来峰》
耳 识
耳闻声。
要求架构师必须学会“倾听”,兼听则明,埋头苦干闭门造车,是设计不出好的架构的。
1. 倾听系统的声音
DàYé说,我们写的代码、系统、组件是一种图灵生命体。你会说,图灵机我知道,生命体是什么鬼?注意,这是我本文的第一个譬喻!
这里我们使用“倒推法”来论述。首先“生命体”这个前提假定大家已认可,自不多言,那么这个“生命体”在被创造出来之后,你准备如何养育它让它茁壮成长?比如你有没有设计什么手段,可以在系统故障之时,轻松找到线索并一举修复;有没有什么手段,可以在系统孱弱(如系统被攻击)之时,尽快的识别并加固;还有没有设计什么手段,可以在系统出现反常行为(如数据不一致)之时,敏锐的发觉并纠正...等等。如果这些手段都设计了,那你的系统就是一个生命体,否则仅仅是个死物。
所以上面说的像不像养孩子?孩子病了、冷了或者谈恋爱了,你都应该及时发现并触发相应的动作。要做到这些,必须建立好通畅的连接通道,并倾听到对方真实的声音。
一言以蔽之,任何交付的系统都不能是一个黑匣子,我们须准备各种手段倾听到系统最真实的声音,它的心跳,它的异常,它的警告,它的忍耐阈值,它的忙碌时刻...听之懂之。
2. 倾听业务的声音
不少技术人只想单纯做技术,不想跟业务打交道。我在年少懵懂时也曾有过类似的想法,后来才发现,驱动架构演进的不出意外都是业务需求,而不是技术本身,单纯做技术只是一种遥远的美好幻想。在不断的深入业务,并将其与技术逐渐融合的过程中,你会发现脱离了业务的技术架构,不能说一定就是错的,但90%都会出现或多或少的偏差。
技术架构或者落后于业务的爆发,或者超前于当前业务的预期,前者会严重阻碍公司业务价值的兑现,后者在前期高成本投入的有效性严重依赖对业务未来评估的准确性。技术人梦想于以技术之力来改变世界本身是值得鼓励的,但不能过于执着,而让技术挡住了视线,甚至凌驾于其他事物之上。
3. 倾听历史的声音
技术人都有自己的技术喜好和偏爱,架构师尤甚。比如在某些历史系统/平台需要升级改造的时点,架构师对于那些“陈旧腐朽”历史物件的厌恶会表现的淋漓尽致,最终演变成大刀阔斧、彻头彻尾的改造行动。而历史系统的研发负责人们陈述的那些问题,担忧的那些事项,很容易被架构师们想象为“保皇派”最后的无谓挣扎,听之弃之,似乎推倒重来构建起的楼阁必将是完美无瑕的。殊不知,新的空中楼阁可能比之前的陈腐物件更加的不堪一击。
尊重历史,因为历史可以给予我们大量的有效信息,你听到了是你的幸运,而如若你听到了却没有听到心里去,那就是你的悲剧。
除却上面三种类别的“听”,还有偏向软技能沟通面的“倾听”。放下主观意识和臆断偏见,谦虚的聆听对方意图,以最大的同理心去感同身受。如此倾听方能让自己在后续的判断决策过程中,更加的灵活、主动和有效。一个学会倾听的架构师,至少不是一个立于对立面的架构师,更容易受到团队的认可和拥戴。
与君歌一曲,请君为我倾耳听。
-李白《将进酒·君不见》
还有四识, 下回分解
to be continued...
推荐阅读
1. 漫谈“架构团队”之组织架构