赞
踩
“技术深度”这个词听起来很是玄乎,每个人对它的理解都不一样。我对它的理解主要体现在两个方面:对业务的理解与思考及对业务/业界中用到的技术点的理解深度。
对于业务来说。
当我们接到一个需求或需要去实现某个功能/架构的时候,要有全局思维、整体观,同时又能透过现象看到本质,抓住事情的核心。对项目的思考程度够不够,项目中解决问题的技术理解的够不够深,对于项目采用的技术钻研足不足。如何在日常的工作中抽象出来,理清思路?这里面也是有一些门道的。与大家分享一些方法论。
业务中的“技术深度”需要体现自己的思考,无论是对已有架构还是对未知场景的假想都会对项目的理解更加深刻,我想这种批判性的思维,也是各大公司都需要人才具备的素质吧。
对于业务中的技术点而言
技术背景、演变、初衷及目标。
这个技术出现的背景、初衷和要达到什么样的目标或是要解决什么样的问题。这个问题非常关键,在学习一个技术的时候,需要知道这个技术的成因和目标,也就是这个技术的灵魂。如果没有了解清楚这些,可能会导致我们看不懂这个技术的一些设计理念。
场景&优缺点?为何项目中用到,用与不用的区别,如何抉择
任何技术都有其适用的场景,离开了这个场景,这个技术可能会有很多的槽点,比如,MQ有很多好处:解耦、异步、削峰等,但同时也会带来系统复杂度几何倍数的增加,因为必须要去考虑数据的一致性、幂等性、可靠性等。所以学习技术不但要知道这个技术是什么,还要知道其适用的场景。没有任何一个技术是普适的。注意,所谓场景一般分别两个,一个是业务场景,一个是技术场景。
这个技术的优势和劣势分别是什么。任何技术都有其好坏,在解决一个问题的时候,也会带来新的问题。另外,任何设计同样存在trade-off(要什么和不要什么),所以我们要清楚这个技术的优势和劣势,以及带来的挑战;
技术的组成部分、底层原理和关键实现
如果已经决定要使用该技术,那么接下来的问题是如何用得好。尝试去了解技术的组成部分和关键点。这是技术的核心及灵魂所在了。学习技术的核心部分是快速掌握的关键。对于某些较为通用的关键解决方案,必要时去阅读相关源码,一定要带有目的去看源码,不然容易陷入源码的泥藻里越陷越深。
其他竞品与它之间的对比。
已有的实现和它之间的对比。一般来说,任何一个技术都会有不同的实现,不同的实现都会有不同的侧重。学习不同的实现,可以得到不同的想法和思路,对于开阔思维,深入细节是非常重要的。
务虚的5why学习法:
其实说白了,核心只有一点,在日常工作中一定要养成刨根问底的习惯。如何做到?丰田公司最早提出了一个所谓5why分析法,又称“5问法”,也就是对一个问题点连续以5个“为什么”来自问,以追究其根本原因。虽为5个为什么,但使用时不限定只做“5次为什么的探讨”,主要是必须找到根本原因为止,有时可能只要3次,有时也许要10次,如古话所言:打破砂锅问到底。5why法的关键所在:鼓励解决问题的人要努力避开主观或自负的假设和逻辑陷阱,从结果着手,沿着因果关系链条,顺藤摸瓜,直至找出原有问题的根本原因。
5WHY从三个层面来实施:
一、为什么会发生?从“制造”的角度。
二、为什么没有发现?从“检验”的角度。
三、为什么没有从系统上预防事故?从“体系”或“流程”的角度。
每个层面连续5次或N次的询问,得出最终结论。只有以上三个层面的问题都探寻出来,才能发现根本问题,并寻求解决。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。