這是一篇短文,分享下兩件小事的感受。
第一件事
去年寫過一篇漫畫《康熙學不了二進制》,講述了二進制和布爾代數的發展,最後由香農發現布爾代數和邏輯電路之間的關系,奠定了計算機發展的基礎。
我的漫畫科普到此就打住,結束了。
最近在看吳軍老師的書《計算之魂》,我發現他也在講這個故事,來了好奇心,仔細看了看。
故事是相似的,沒有新意,但是後面的總結卻提出了一個讓人耳目一新的觀點:
香農的電路設計思想可以被總結為“模塊化”和“等價性”。
所謂模塊化就是用少量簡單的模塊搭建出各種複雜的功能,這也是今天計算機行業的核心指導思想。
在計算機的産品中,常常是大量相同模塊的複制,這也是IT産業能發展很快、摩爾定律能成立的重要原因。
等價性即再複雜的計算都可以等價成很多加、減、乘、除的運算,再進而等價成開關電路的邏輯,也就是說,實現了後者,間接地實現了前者。
我一下子就感受到了差距,我隻是描述了現象,沒有觸及到本質,沒有總結出規律。
我反問自己:對布爾和香農的故事,你能想到這一層嗎?
似乎不行。
如果是單純技術層面,比如講redis這樣的緩存的時候,我就會深挖到底層:計算機各個部件之間速度差異巨大。但是對技術發展曆史來說,我做不到。
可見知識面還不夠廣闊,洞察力還不夠深刻,上升不到這個層次。
表面現象誰都可以講幾句,但是背後那些深刻的東西講起來就難了, 但恰恰就是這些東西,讓我們印象深刻,觸及内心。
以後還是得多讀書,更加深入思考,努力地從現象發掘本質,總結出規律性的東西出來。
第二件事
寫關于單元測試文章的時候,搜到了Martin Fowler寫的一篇文章, 我一看到其中的圖就感覺被搔到了癢處。
圖展示的是單元測試,比如,你在測試Order類,Order類引用到了Product和Customer,那做單元測試的時候,要不要把這倆貨用Mock技術給隔離開測試呢?
我原來寫單元測試經常會遇到這種情況,每次給人解釋都很費勁。
Martin Fowler的厲害之處在于他對兩種情況作了分析, 各自總結了一個貼切的名字:
1. Sociable Tests
“社交化”的測試,表示大家(Order, Product, Customer)都在一起,不隔離
2. Solitary Tests
“孤獨的”測試,表示隔離開,隻測試Order類。
這真是讓我眼前一亮, 有了雙方都認可的名稱,交流效率就極大提升了,就像設計模式那樣,隻要你說你用了觀察者模式,我不看代碼就知道大緻長什麼樣子。
我不由得反思:這兩種測試方式已經在我心中盤踞很久,我為什麼沒有總結一下,給它起個有趣,貼切的名稱呢?
首先是意識不足,沒想到;其次恐怕還是能力不夠。
能夠說出别人想說,但是難以表達的東西,成功地搔到大家的癢處,這真是一件厲害的本事。
兩件小事帶來的思考
兩件小事,讓我感受到了和大神很大的差距。
想繼續往上走,知識面需要更加寬廣,洞察力必須更強,思考必須更加深入。
需要經常記錄、整理、思考、輸出,如果我們整天看碎片化的東西,大腦就廢掉了。
一篇短文,和大家共勉。
吳軍博士在科技人文領域重磅新作,從根本幫助你進階計算科學品味和認知,訓練你的計算思維。
本書使用世界著名科技企業的面試題作為實例,分10個主題系統講解計算機科學的精髓。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!
,
2023-07-19