两件小事,感受到了和大神的差距

这是一篇短文,分享下两件小事的感受。

1

去年写过一篇漫画《康熙学不了二进制》,讲述了二进制和布尔代数的发展,最后由香农发现布尔代数和逻辑电路之间的关系,奠定了计算机发展的基础。 

我的漫画科普到此就打住,结束了。 

最近在看吴军老师的书《计算之魂》,我发现他也在讲这个故事,来了好奇心,仔细看了看。 

故事是相似的,没有新意,但是后面的总结却提出了一个让人耳目一新的观点:

香农的电路设计思想可以被总结为“模块化”和“等价性”。 

所谓模块化就是用少量简单的模块搭建出各种复杂的功能,这也是今天计算机行业的核心指导思想。 

在计算机的产品中,常常是大量相同模块的复制,这也是IT产业能发展很快、摩尔定律能成立的重要原因。 

等价性即再复杂的计算都可以等价成很多加、减、乘、除的运算,再进而等价成开关电路的逻辑,也就是说,实现了后者,间接地实现了前者。 

我一下子就感受到了差距,我只是描述了现象,没有触及到本质,没有总结出规律。

我反问自己:对布尔和香农的故事,你能想到这一层吗? 

似乎不行。

如果是单纯技术层面,比如讲redis这样的缓存的时候,我就会深挖到底层:计算机各个部件之间速度差异巨大。但是对技术发展历史来说,我做不到。

可见知识面还不够广阔,洞察力还不够深刻,上升不到这个层次。

表面现象谁都可以讲几句,但是背后那些深刻的东西讲起来就难了, 但恰恰就是这些东西,让我们印象深刻,触及内心。

以后还是得多读书,更加深入思考,努力地从现象发掘本质,总结出规律性的东西出来。

2

写关于单元测试文章的时候,搜到了Martin Fowler写的一篇文章, 我一看到其中的图就感觉被搔到了痒处。 

图展示的是单元测试,比如,你在测试Order类,Order类引用到了Product和Customer,那做单元测试的时候,要不要把这俩货用Mock技术给隔离开测试呢? 

我原来写单元测试经常会遇到这种情况,每次给人解释都很费劲。 

Martin Fowler的厉害之处在于他对两种情况作了分析, 各自总结了一个贴切的名字:

1.  Sociable Tests  

“社交化”的测试,表示大家(Order, Product, Customer)都在一起,不隔离

两件小事,感受到了和大神的差距_第1张图片

2.  Solitary Tests

“孤独的”测试,表示隔离开,只测试Order类。

两件小事,感受到了和大神的差距_第2张图片

这真是让我眼前一亮, 有了双方都认可的名称,交流效率就极大提升了,就像设计模式那样,只要你说你用了观察者模式,我不看代码就知道大致长什么样子。 

我不由得反思:这两种测试方式已经在我心中盘踞很久,我为什么没有总结一下,给它起个有趣,贴切的名称呢? 

首先是意识不足,没想到;其次恐怕还是能力不够。 

能够说出别人想说,但是难以表达的东西,成功地搔到大家的痒处,这真是一件厉害的本事。

3

两件小事,让我感受到了和大神很大的差距。 

想继续往上走,知识面需要更加宽广,洞察力必须更强,思考必须更加深入。 

需要经常记录、整理、思考、输出,如果我们整天看碎片化的东西,大脑就废掉了。

一篇短文,和大家共勉。 

(完)

点击下方图片,查看更多精彩

两件小事,感受到了和大神的差距_第3张图片

两件小事,感受到了和大神的差距_第4张图片

两件小事,感受到了和大神的差距_第5张图片

两件小事,感受到了和大神的差距_第6张图片

两件小事,感受到了和大神的差距_第7张图片

你可能感兴趣的:(java,python,大数据,人工智能,机器学习)