架构师-第二次课后作业

第2次-课后作业


  1. 如何无缝停止线上服务
    方法1:可以在网关层处理。增加一个新网关节点,逻辑只有拒绝服务。在停机时间到来时,变更cname到这个新网关节点即可。
    方法2:可以在逻辑层处理。入口处增加代码,当停机时间到来时统一返回一个错误信息。这样新的请求都被拒绝,旧的请求不受影响。

学习金字塔

学习金字塔

这是我的第一篇技术博文

    有这样一种理论,是人类认知逻辑遵循一个递进关系,就像一个金字塔:

金字塔

被动学习阶段

听觉渠道获得的知识之占5%;教会别人可以占到90%;既然是人类一般认知的逻辑,那么就可以把此逻辑应用到编程上。假设出现了这么一种软件,听到别人说,上网搜索后可以了解一个大概,这时至少应该知道了名字、用途、作者等基本信息;进一步了解后,可以得知出现这个软件的场景、可以解决什么问题、实现的语言等,到此为止前5%的认知水平基本就达到了。我认为不管什么学科,达到这个认知水平还是非常简单的,所以遇到不懂的事情,只要简单搜索下,花上半小时基本能入门。

    举个例子,基于BPMN协议开发的activiti工作流引擎是什么个东西?发现activiti就是一套Java程序,用来实现一些流程的控制,比如请假流程、盖章流程等,如果用if-else肯定也能实现,就是太不优雅。至于BPMN协议是个什么东东,一搜索也能了解了,一套XML结构标准,定义了一些对象节点、网关节点以及数据流向节点,可以支持在XML里写Java代码等等。

接下来就是读书和实践阶段了,这部分可以占到总进度的50%,一般来说掌握了这个阶段的精髓,用次技术来工作就是小场面了,这个阶段的学习手段五花八门,看书、写技术文章、复盘使用心得以及自己怎样填坑等,大部分场景都能hold住。注意是大部分,并不是全部,还是给继续学习留了空间。 接下来就是读书和实践阶段了,这部分可以占到总进度的50%,一般来说掌握了这个阶段的精髓,用次技术来工作就是小场面了,这个阶段的学习手段五花八门,看书、写技术文章、复盘使用心得以及自己怎样填坑等,大部分场景都能hold住。注意是大部分,并不是全部,还是给继续学习留了空间。

主动学习阶段

什么情况下我们要继续学习呢?我感觉理由不是很多,要么被逼的,要么是有兴趣,一个一个说。什么是被逼的呢?答案就是你踩了狗屎,流量不知是从哪来的,反正是来了,越来越多,没办法了,只能深度挖掘技术,榨干优化空间,像淘宝、微信这种。经历过这些事情的人,像学的垃圾都不允许。被逼的还有另外一种情况,就是预防还没有发生的事情,比如造原子弹。如果不造原子弹别人就有可能利用核威慑,所以手里有原子弹而不用跟没有原子弹就有本质区别的,此处要像共和国的元勋致敬,太不容易了!有另外一种学习方式就高级一些了,就是兴趣。孔子不是说,

    学而知之不如乐而知之。

有目标的学确实厉害,但为了乐趣而学更厉害。为什么?因为乐趣是无止境的,有目标的方式,如果实现了可能学习的动力就没那么多了。所以问题来了,怎么能让自己有兴趣学习呢?参考自己30多年的经验,似乎没有哪个知识是我主动要学的,娱乐和足球除外。对待足球的问题上,从来都是提前准备,场上拼命,回家反思。甚至去健身练腿,我也从来不觉得辛苦,为什么呢?因为乐学,我自认为比身边没有专业训练过的人要踢的好一点点。但是我没有找到能转移这种乐学到其他方面的方法,暂时无法复制。那没办法,只能让自己学而知之了。

后记

我为什么要写技术博文?建单说就是被打击了。各种面试给我各种摧残,3年前我出来面试还不是这样,各种面试造原子弹,入职crud。后来想想,就一个原因,人多!筛选人的方式要么是学历,要么是知识,所以有些一辈子可能都用不到的知识就成了面试的常客。所以我要把自己已经知道或者想知道的“原子弹知识”记录下来,免得下次让人羞辱。

void main (int argv, char *argc) {
        print("Hello,world!");
}