好書一起讀 151 抽象和分層

2022-07-01 15:33:14 字數 2064 閱讀 9145

點評:抽象的分層與功能的重組想關聯;

對於單個事物的抽象和對於系統的抽象要區別對待;

單個事物的抽象是資訊過濾;是部分替代整體;

系統的抽象是用整體隱藏區域性;

人類想解決問題,但問題複雜,腦力有限,所以使用抽象。也就是說,抽象是一種工具,這工具的用途是幫助人類以有限的腦力解決複雜的問題。

人的思考能力有侷限,大腦能同時處理的問題數量很少,但人面對的問題卻可以無限複雜,為了解決複雜的問題,必須重視主幹、捨棄細節,把乙個複雜問題提煉為大腦能夠容納的有限個數的子問題,並給子問題取個名稱以方便理解和溝通,這就是抽象。

抽象是多層次的,越高層問題數量越少,粒度也越粗,越巨集觀,越抽象,而越低層則數量越大,粒度越細,越微觀,越具體。在高層上思考問題,可以稱為戰略,在低層上思考問題,可以稱為戰術,在底層思考問題,可以稱為技術。韓信這種帶兵「多多益善」的指揮官,是跨層次人才,從技術到戰術到戰略樣樣擅長,是極難得的,所以叫「國士無雙」。

人類的活動,其本質是通過做出行為,讓世界從乙個狀態變成另乙個狀態,這就是所謂的改造世界。為了改造世界,首先要認識世界,即了解世界當前的狀態。這與計算機做的工作是完全一樣的。抽象這種工具,或者用於對狀態(資料)抽象,或者用於對行為(過程)抽象。對狀態抽象,目的是認識世界,世界太複雜,我們只能根據具體需要,選擇乙個特定的抽象層次來獲得認知。對行為抽象,目的是改造世界,面對的任務太複雜,我們也只能根據具體需要,選擇乙個特定的抽象層次來思考決策。

抽象大大降低了問題的複雜度,其理論往往是普適的。但簡化的代價就是丟失資訊,普適的另一面就是不夠具體、不能直接用來解決問題,需要乙個「落地」的過程。例如兵法講「正合奇勝」,這四個字是真理,而且極為普適,用到任何乙個領域都能適用,但光會背這四個字顯然一場仗都打不贏,還需要知道更下層的知識。**元帥打仗常指揮到師,從野戰軍司令的工作內容層次看,這算是很細緻了,但從師長的層次看,他下的命令又是非常巨集觀的,怎樣把命令變成具體的動作,需要師長及以下各級別指揮官的知識來填補。在程式設計裡,這種由粗到細的任務細化,被稱為自頂向下的設計(如果是從具體到抽象,就是自底向上了),從整體到部分,從概括到細節,從巨集觀到微觀,在解決每個問題時,認知負擔都較輕,只需要掌握本層和下一層的知識即可,這就是把過於複雜的問題拆分成乙個個簡單的問題,使人類的能力足夠解決。在工程上,這也形成了分工和專注,所謂分工,就是不同問題交給不同人處理,所謂專注,就是每個人只負責一類問題,這就是高內聚低耦合的思想在社會運轉中的應用,其效果是非常顯著的,大大提高了生產率,這也是管理學上的經典案例。

對事物的抽象,減輕了認知負擔,簡化了問題,其代價就是丟失了資訊,抽象出的結果,必然是失真的——例如近期阿爾法狗用輝煌的戰績證明了人類的所謂棋感有其偏差之處,但只要這樣做划算,就不能因噎廢食。這正如經驗和歸納得出的資訊不能保真,但人總需要有個認識來幫助做事,有時候我們可以接受我們對世界的認識不那麼的真,只要這認識帶來的好處超過其失真的壞處,我們就願意用它。

這很功利主義,很重視實效,因為生產和生活本來就是實踐的過程,考慮的是應然問題(howto)而不只是實然問題(what is),重視的是利益、價值、方法、策略、效率、成本、收益這些詞。常聽有人說「你說得太抽象了,不實際」,其實抽象的目的本來就是解決實際問題,而且每個人每時每刻都在抽象——有誰生活中在原子層面考慮問題嗎——只是不同人的抽象層次不同。如果高層次抽象不能落地,那固然是不能解決問題,還不如能解決問題的低層次抽象,但如果高層次抽象能落地,幫助解決問題,其解決問題的效果會遠遠好於只使用低層次抽象的方式。理論和實踐要結合,不要只顧理論變成教條主義,也不要仇視理論變成經驗主義,這兩者都是毛同志早就批判過的。

務虛和務實要結合起來。會抓脈絡,才能提綱挈領,精通細節,才能掌上觀文。高層次抽象和低層次抽象並不天然牴觸,相反對任何一者的理解都有助於對另一者更好的理解。理解了高層次抽象,有助於在研究低層次抽象時有位置感,知道自己當前所處於問題的哪個區域性。理解了低層次抽象,則有助於在進行高層次抽象思考時,理解底層原理,從而做出更好的思考和判斷。

高談闊論、以空對空固然不好,但只在底層思考,也有矇眼拉磨的風險。能上能下、多多益善是最好,但如果才具一般,能力只能勝任某層之內的工作,至少也該對其他各層略有了解,以知道自己所做的工作其意義為何,而不是解決了任務領到薪水就心滿意足。畢竟,我們除了有某一崗位的職務,還有做為乙個有血有肉的人的身份,我們有求知慾並渴望進步,因為只有進步能讓人感到幸福,而進步,意味著對世界擁有更透徹的認知,這些認知,讓我們充滿喜悅。

讀《跟我一起學Makefile》有感

其實在之前的工作中有很多的機會接觸到makefile,但是總是沒能拿出時間通讀其語法,我想這與自身不夠積極的態度是直接掛鉤的。先說說在這次的收穫 首先從最基本的語法規則到變數定義,熟悉了其最基本的工作流程 再者結合文中的示例,自己再實際練習,熟悉了其中個別函式及特殊規則的應用。在接觸到專案中的mak...

和Top一起成長

秒殺!09年比較火的乙個詞 從剛開始秒殺手機,電腦,到後來的秒殺汽車,到現在的秒殺房地產 相對於 的秒殺,我有許多事情,進展的比較緩慢,參加 top比賽乙個多月了,一直想寫點什麼,和大家一起享,但是卻拖到了現在 下面我就和大家分享一下我使用 top平台的一些體會和心得.一 見證 的崛起1 全球網際網...

讓我們一起讀一張證書吧!

使用時間 使用者 公鑰公鑰引數 公鑰引數 欄位的最重要用途是在ecdsa證書中。如果是rsa,就是null。授權資訊訪問 authority info access 鏈結 證書策略 基本約束 鏈結 基本約束是x.509證書v3擴充套件。此擴充套件描述證書是ca證書還是最終實體證書。路徑長度約束僅適用...