《大道至簡》第二章讀後感 是懶人造就了方法

2022-05-08 16:39:16 字數 1580 閱讀 6740

何為「大道至簡」?在周愛民的《大道至簡》一書中給出的大道至簡的解析是軟體工程實踐者的思想,它是一種思想,而不是一些招數或者方法。

「僰蘭道有蜀王兵,亦有神作大灘江中。其崖嶄峻不可破,(冰)乃積薪燒之。」 

話說,戰國時期有一人叫李冰,他幹了一件事情與愚公類似,那就是鑿了一座大山,然而鑿山的過程卻與愚公相去甚遠。愚公歷代子孫去鑿穿了山而李冰以火燒石省去了大量的人力物力。那李冰又是為什麼會用「燒」這種方法來碎石的呢?如果李冰也象愚公那樣日復一日地督促著他的團隊鑿石開山,那他一定沒有時間來學習、尋找或者觀察,當然也不會發現「燒」這種方法可以加快工程進度,使得一大座山短時間就被嘩啦嘩啦地給「碎」掉了。所以說,正是乙個懶人造就了「燒石頭」這個「碎石」的方法。愚公太勤快了,勤快得今天可以比昨天多鑿一倍的石頭。或者在愚公的專案計畫案的首頁裡就寫著朱筆大字:「吾今勝昨倍許,明勝今倍許,而山不加增,何苦而不快。」但是越發的勤快,愚公將越發沒有機會找到更快的方法,人的精力是有限的,我們要盡可能用簡單高效的方法去解決問題,才可以突破人力的極限。

我們已經看到事物的進化了。同是戰國時代,《列 子·湯問篇》裡的愚公就要「碎石擊壤」,而李冰就已經懂得「積薪燒之」了。在都江堰這麼大個工程裡,如果有乙個人會閒到看火燒石頭,那他一定很懶。那麼多事堆著不去做,去看燒石頭,你說他不是懶是什麼。所以說是懶人造就了方法。

早期寫程式,都是將**打在穿孔紙帶上,讓計算機去讀的。要讓計算機讀的紙帶當然是連續的,這無需多講。而打出的紙帶是多麼苦楚。後來有了組合語言,可以寫一些**了。這時的**是寫在文字檔案裡,然後交給乙個編譯器去編譯,再由乙個鏈結器去鏈結,這樣就出來了程式,再後來有了高階語言,程式越來越大,大家把寫程式的時候,習慣性的把所有的**寫到乙個檔案裡。而對於要把「一百萬行**寫到乙個檔案」,查詢乙個函式要在編輯器裡按五千次 pagedown/pageup 鍵的勤快人來說,是不能指望他們創造出「單元檔案(unit)」這樣的開發方法來的。所以是懶人開發了單元檔案,也就很快出現了乙個新的概念:模組。 把乙個大模組分成小模組,再把小模組分成更細的小小模組,乙個模組對應於乙個單元。於是我們可以開始分工作了,一部分人寫這幾個單元的**,另一部分則寫那幾個。所以說是懶人造就了方法。

其實結構化程式設計的基本單位是「過程(procedure)」, 而不是上面提到的「單元(unit)」。然而在我看來,過程及其呼叫是 cpu 指令集所提供的執行邏輯,而不是普通的開發人員在程式設計實踐中所總結和創生的「方法」。正如 cisc 指令集攪亂了一代程式設計師的思路一樣,大量的知識和資訊攪亂了我們思想。我們應該嘗試一下分類,把既有的知識象桌子上的書一樣整理一下。

所謂「面向過程開發」,其實是對「結構化程式設計」 在**階段的乙個習慣性的說法。而我忽略了這個階段的 「方法」的根本原因,是即使沒有任何「方法」的存在,只需要有了「單元(unit)」和「模組(module)」的概念, 在面向過程時代,一樣可以做出任意大型的程式。在那個時代,「方法」問題並不會象鼻子一樣凸顯在每乙個程式 員的面前。

面向過程開發中,「過程(procedure)」是 cpu 提供的,「單元(unit)」則是編譯器提供的(機制)。程式設計師不需要(至 少是不必須)再造就什麼「方法」,就可以進行愚公式的開 發工作了。 如果不出現物件導向的話,這樣偉大的工程可能還要再幹一百年??而與「物件導向」是否出現完全無關的乙個東西,卻 因為「過程」和「單元」的出現而出現了。這就是「工程 (engineering)。

懶人造就方法(《大道至簡》第二章讀後感)

懶人在一定程度上的確能創造出方法,他們把複雜的問題簡單化,把乙個龐大的工程分成無數的小項,再逐個擊破。這些能創造出方法的 懶人 們不是在想問題解決方法上表現出懶惰,只是他們不願意在複雜的,重複的,過於冗長的問題上過於糾結。把精力多放在尋找解決問題的方法上,尋找捷徑,這正是我們能從中學習到的好思路。該...

大道至簡第二章 是懶人造就了方法 讀後感

戰國時期李冰鑿了一座山,鑿了一座山,確實沒什麼好講的,即使是在古代,只要人力資源能跟上,基本上多大的山都能鑿了,然而這裡之所以說他鑿山,是因為他鑿山的方法在當時與別人不一樣。怎麼各不一樣法呢。他積薪而燒之,然後在鑿之。用這種方法,鑿山輕而易舉。這就是他的高明之處。那麼,他是怎麼想到用這種方法呢?這時...

大道至簡(讀後感)第二章 是懶人造就了方法

華陽國志 中寫道 僰道有蜀王兵蘭 亦有神作大灘江中。其崖嶄峻不可破,冰 乃積薪燒之。史記中記載戰國時李冰鑿了一座山搞成一條河。他的偉績也是夠大的!列子 湯問篇 中記載同一時代的愚公在老老實實的 碎石擊壤 而李冰卻在燒石頭,呵呵。愚公會鑿,而李冰會燒。那李冰又是為什麼會用 燒 這種方法來碎石的呢?如果...