共计 2603 个字符,预计需要花费 7 分钟才能阅读完成。
作者:樊思国
一、引言
被埃隆·马斯克屡次提及的第一性原理 First principle thinking,是计算物理学畛域的一个专业术语,在商业畛域仍然具备鲜活的生命力。读过《硅谷钢铁侠》这本书的晓得,正是因为利用了第一性原理对问题进行剖析,才使得马斯克在跨航天、汽车、能源和软件畛域翻新硕果累累,比方 SpaceX 的胜利,就是从根本上找到运载火箭的老本重头在推动零碎上并解决该问题,从而发明了可回收利用的火箭推进器,从根本上解决老本问题,对行业来说是颠覆性的翻新模式。
第一性原理的转义是指在进行计算的时候除了通知程序你所应用的原子和他们的地位外,没有其它的试验的,教训的或者半教训的参量,且具备很好的移植性。艰深了解,第一性原理就是基于客观事实进行的推导,其中不退出本人猜想和类比等经验性的货色。
在翻新和研发效力晋升的行业大背景下,作者认为在咱们的日常研发工作中,也能够利用第一性原理思维帮忙咱们晋升效力甚至是晋升创新能力。比方,线上问题排查和剖析解决,就能够很好的利用第一性原理领导咱们实际。
下文将通过一个实在的线上问题排查经验, 提炼出一种利用第一性原理进行问题排查和解决的通用流程框架,并剖析案例中的第一性原理利用要害,最初总结了第一性原理利用须要具备的根本步骤,旨在为晋升咱们研发效力找到一个理论的结合点。
二、一次线上问题排查过程
咱们常常会遇到排查解决线上问题的场景,每次如果都能使用第一性原理定位问题,将会失去不一样的成果。上面咱们来看一个实在的线上问题排查场景:
11 月 5 日晚上 6:10,咱们敬爱的运维同学从睡梦中被 Flink 作业重启的告警电话吵醒,通过排查发现 redis 内存满了,于是告知大家一起排查。排查过程中发现三类景象,并一步步剖析得出结论,作者通过深入分析和整合大家排查状况和景象,总结如下图:
上图能够看到,从收到 Flink 重启的告警登程,发现三个景象(或者说三个为什么), 始终沿着这三个景象往下剖析,逐渐剥开问题表象,推导出导致问题的根本原因,最初收敛成了三个论断(标记地位),并进一步针对收敛进去的论断深刻开掘实质,从而导出咱们下一步的 todo 项。
三、第一性原理剖析
下面的问题排查过程的思路梳理,其实是一种第一性原理的使用,也就是通过不退出任何教训、猜想,只看景象和发现(日志与监控),提出假如并证实的过程。因为只有这样,能力保障咱们每一步都是靠近问题实质的,最终收敛进去的论断才是实在牢靠的,咱们针对论断再提出解决方案,才是从根本上解决问题的一种形式。
反之,如果咱们退出本人教训或类比,则违反了第一性原理的出发点,使得前面所有建设起来的推导或是论断都是站不住脚的,兴许某些状况下,猜想和粗犷的重启流动可能暂时性地解决问题,但长期来看,相似问题还是会存在。就比方咱们去网吧上网发现机器坏了,网管个别会让你重启一下机器一样,因为网管这个时候退出了本人的教训判断,那就是重启就能解决问题,尽管大多数时候也很管用,但这很多时候其实并不是一种从根本上解决问题的方法,我想咱们作为研发人员,该当具备一种刨根问底,切入实质的思维模式,这种思维模式就是利用好第一性原理。
四、利用第一性原理
那么,咱们怎样才能真正的应用第一性原理呢?有三点,一是具备丰盛的畛域常识。二是从客观规律登程。三是从根本上提出解决方案。
4.1 丰盛畛域常识
就如下面问题排查过程,须要把握的常识包含了 flink、redis 缓存、音讯队列、日志排查能力、源码浏览能力和计算机根底等,如果不具备这些业余的常识功底,是不可能深刻基本地剖析和解决问题的,就像网吧管理员一样,不懂硬件和软件常识,当然就只能通过重启来解决问题。因而,作为研发人员,在工作中很好的利用第一性原理,前提条件是对相干畛域常识有深刻原理级别的了解,对利用的技术组件可能了解外围的技术原理和架构,对业务可能了解背地的基本动机和运行规定。
4.2 从客观规律登程
这一点尤其重要,有时候咱们具备了丰盛的畛域常识,然而却没法扎实的去剖析问题,去做到只看客观规律、而后提出假如、而后找证据来证实或是证伪,那么也是没法做到从实质上解决问题的。因为,只看景象是第一性原理的出发点,提出假如是在问题的答案空间外面做剪枝排除,最初找证据则要求咱们具备相对的感性来看待。只有这样,离假相能力更进一步,直至找到根因为止。
比方咱们看到线上告警,第一步该当是去寻找和这个告警相干的原始日志,而不应该是通过景象进行教训判断或是猜想而不看日志,因为日志才是记录整个程序运行的过程,属于客观规律的领域,而教训判断和猜想则是基于观点的偏见,是意识畛域的领域。在必要的时候,咱们通过日志找到了主观景象和法则,咱们还须要通过源码的剖析来进一步把握更多的客观规律,因为把握的客观规律越多,越利于咱们做出正确的判断,也就越靠近事物本质。
4.3 从根本原因上提出解决方案
利用第一性原理失去根因后,最初一步也是最要害的一步则是解决问题,这个时候提出的计划要么就是从根本上解决已有问题,要么就是翻新的解决方案,犹如足球运动中的临门一脚。
五、研发效力之第一性原理
除了线上问题排查,第一性原理亦可利用于咱们整个研发过程中。
比方,需要阶段利用第一性原理能够帮忙咱们挖掘出客户实在需要而不是停留在表象层面;设计和研发阶段,利用第一性原理,在深刻了解好咱们研发工具箱中各类技术和组建的实现原理的根底上,针对需要阶段提炼进去的最为实在的问题点进行逐个剖析,揭示问题域中外围复杂度,最终产生的架构设计和实现必然是最为适合的;测试阶段,利用第一性原理去了解零碎实现的外围逻辑,针对外围逻辑设计测试用例笼罩性能点。针对零碎上线后呈现的问题,利用第二章的问题剖析框架,能够一步步帮忙咱们找到问题实质,并针对该实质采取改良措施,反馈回咱们的产品,这样就能做到从零碎层面解决问题,而不是停留在点对点的问题应急上。
在整个研发周期中,充分利用第一性原理剖析每个环节,提炼出每个环节的首要问题,并针对问题提出解决方案,各个过程之间相互迭代反馈,造成加强回路,长此以往,我置信咱们的研发效力定会有一个大的晋升。
五、总结
本文通过一个实在的线上问题排查案例,展现了第一性原理在工作中的落地,通过剖析第一性原理的利用关键点,提出了三种可行的利用第一性原理的办法。然而,因为作者满腹经纶,在行文过程中难免会存在一些考虑不周的中央,也欢送提出您贵重的倡议一起学习提高。