[book]道法自然

前不久讀了王詠剛的〈凌波微步〉和〈凌波微步II〉,感覺不錯。今天把他老人家的《道法自然》也買了下來。

在dearbook看到關于這本書的長篇大評,也一塊copy了下來:

http://www.dearbook.com.cn/book/viewbook.aspx?pno=TS0023954

認真的作者,真實的經歷,實踐的結晶(讀者 Soundboy2005-5-31)0人同意、0人反對????
?? 這本書買了幾個禮拜了,但是買的時候公司的事情很忙,只是做了一個翻閱,最近終于比較深入得閱讀了。在這里把自己的感受寫下。
?? 讀此書,最大的收獲之一就是比較輕松地理解了設計模式。說實在的,GoF的《設計模式》買了幾年了,但是對于20幾個模式始終沒有建立起一個明確的概念。而了《道法自然》一書中,經典的模式被作者用淺顯甚至詼諧的語句描述了出來,使得腦子里馬上有了一個直觀的感性認識。這個時候再回頭來看嚴密經典的論述就輕松了許多。
?? 這本書在網上是比較有爭議的一本,其中爭議的一個焦點就是書名,有人認為起了這么個名字太虛了,技術人員應該務實。有人則認為這個名字形象、容易記。我的感覺是按照這個詞在中國文化中的地位這本書的確是有點欠份量,但是此書的確是一本獨到的書,應該有一個獨到的名字。這個名字給了這本書一個清晰明確的ID,方便大家交流。
?? 這本書可能不適合對于軟件工程已經很有造詣的高手學習,因為里面講的東西幾乎都可以在近年的一些流行經典書籍中找到更詳細、嚴格的描述。當然抱著挑毛病的目的的除外。 也不適合剛剛學習了C語言而沒有寫過幾個完整程序的學生閱讀。因為講的東西大多數都是只有在實際項目中才能體會的。而有一類人,他們掌握了C++等語言的基本語法,也做了一些項目,但是對于究竟怎么去從整體上把握一個項目確沒有很好的想法,買了幾本類似《UML用戶指南》、《設計模式》等大師著作卻因為自己理解能力有限而讀得費勁,總感覺書上的理論過于抽象難以和實際的應用有個順利的鏈接而放棄。很不幸我就是這類人,而這本書最適合的讀者應該就是這類人。很慶幸我就是這類人之一。因此我感覺這本書很適合我閱讀。
?? 此書的作者一定是閱讀了大量的面向對象方面的書籍文獻。我這么想到不是因為書后羅列了4頁紙的參考文獻,而是書中大量明確的和廣泛交叉的引用。要做到這點如果不對原著中的觀點充分理解幾乎是不可能的。
?? 這本書不能作為學習面向對象知識的教材,而只能作為輔導書。作者在簡介中說“如果吧面向對象大師們偏重理論建構的經典讀物稱為面向對象盛宴中的主菜,那么本指南若能充當佐餐的涼菜或者是飯后的甜點,作者就心滿意足了。”看來作者對于自己的作品有著清楚的認識和定位。我看經典讀物可以比作高能量的壓縮食品,營養豐富但是并不可口。有了《道法自然》書的調配,美味和營養就可以兼得了。
?? 書中的“笨笨點評”我比較喜歡,可以使得在讀書的時候喘口氣,還獲得了一些常識。如果還嫌書的正文不夠通俗,那么點評中的話就更是聊天式的。
?? 關于書的價錢,很多人說是貴了,這本書一共將近450頁,定價是45.00元,平均每頁一毛錢。我是在網上買的34塊多,平均每頁幾分錢。不是很便宜,但也絕對不是貴。其實書的價錢要是按照紙張的量來算那是收舊書的小販,讀者買的是書的內容。我的感覺是花這30幾塊錢是值得的。
?? 很多人批評這本書沒有自己的新觀點,而是把面向對象理論做了一匯編。這看來是事實,但這里的匯編絕對不是簡單的羅列,而是放在了實際的工程中的有血有肉的展示。而且,任何知識到了一個真正理解了他的人的腦子里面,或多或少都要產生一些自己的東西的。仔細的看此書,里面還是有一些出彩的地方的:
?? 第14章、UML的消息和進程間調用函數的關系。“為什么UML把所有函數調用都稱為消息。”這個結果可能很多人都知道,但是能回答為什么的有幾個人呢。這個分析好像在其他書中沒有提及的(抑或是我孤陋寡聞?),而且這個問題也是一個長期疑惑的問題。
?? 書上還著重提了一下C++語言里面多態的概念,其實這是絕大多數模式存在的基礎,要是沒有多態,大部分模式根本就不可能存在。可是現在學過C++、甚至寫過C++程序說不清多態的人大有人在(我好像就是其中一個,大概知道,但是嚴格說清楚好像不行)。從這點上看此書像是一個優秀的學生學習設計模式做的筆記,把相關內容串起來了講了一下。給一些沒有老師的學生一個學習的指到路線。
?? 這本書雖然在設計模式上用了大量的筆墨,但是卻不是一本專門講設計模式的書,不能用來作為設計模式的教材。Bridge ,Interpreter 等模式書中就沒有提及。我在剛開始讀這本書的時候感覺最大的收獲是通俗的的講解了設計模式。等到繼續閱讀以后,發現讓讀者學習設計模式不是作者的最終目的。書中講了一個實際的、完整的項目。前三分之二部分講的系統分析等。
?? 以上文字寫于2004年底,最近又把這本書拿出來翻了一下,感覺還是有新的收獲,雖然早先看的很多都忘記了。的確,如果沒有實踐的機會,很多東西是很難深刻掌握的,這本書講的就是實踐中的東西,給我們了一個真實實踐的過程記錄,其中也包括了作者多年的總結。
?? 如果你感覺到自己寫了不少的代碼,但是總是感覺停留在代碼工人的階段。對于整個軟件的結構無法把我,而實踐中又沒有多少理論學習的機會,一些大部頭的著作看起來又有點費勁,那么這本書是再適合不過了。

轉載于:https://www.cnblogs.com/aiwz/archive/2005/09/24/6333167.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277303.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277303.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277303.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

c語言編手機藍牙軟件的代碼,51單片機C語言的簡易藍牙鎖代碼

#include#define uint unsigned int#define uchar unsigned charuchar r_buf; //藍牙接收到的字符存儲緩沖區sbit PWMAP2^0; //電機驅動模塊接口sbit IN1P2^2;sbit IN2P2^1;sbit STBYP2^3;sbit LED1P0^0; //LED燈接口sbit LED2P0^1;sbit LED3P0^2;sbit key1P1^0;…

列表嵌套字典,根據字典某一key排序

在返回列表嵌套字典時候,往往需要對數據進行一定的處理:按照字典中某一個key排序 In [87]: a [{"name": "牛郎", "age": 23},{"name":"許仙", "age": 20},{"name":"董永&q…

display: inline-block 布局

三個元素display: inline-block; 布局 ,其中一個元素中存在其他元素也用了display: inline-block; 無法垂直居中,將這個元素設置為display: inline; 轉載于:https://www.cnblogs.com/Running00/p/11163751.html

GCC精彩之旅

在為Linux開發應用程序時,絕大多數情況下使用的都是C語言,因此幾乎每一位Linux程序員面臨的首要問題都是如何靈活運用C編譯器。目前 Linux下最常用的C語言編譯器是GCC(GNU Compiler Collection),它是GNU項目中符合ANSI…

寫出C語言中5種數據類型的名稱及其關鍵字,求C語言中的32個關鍵字及其意思?...

關鍵字如下:一、數據類型關鍵字(12個):(1) char :聲明字符型變量或函數(2) double :聲明雙精度變量或函數(3) enum :聲明枚舉類型(4) float:聲明浮點型變量或函數(5) int: 聲明整型變量或函數(6…

想要設計自己的微服務?看這篇文章就對了

歡迎大家前往騰訊云社區,獲取更多騰訊海量技術實踐干貨哦~ 本文由我就靜靜地看 發表于云社區專欄 本文通過使用Spring Boot,Spring Cloud和Docker構建的概念驗證應用程序的示例,為了解常見的微服務架構模式提供了一個起點。 該代碼在Github上…

函數的嵌套調用

在函數的內部調用其他的函數 def index(): func() print("index") def func(): index() # def index():# func()# print("index")## def func():# print("func")# index()#def my_max(x,y): #這個函數的作用就是比大小誰大打印出…

mysql 開發進階篇系列 41 mysql日志之慢查詢日志

一.概述 慢查詢日志記錄了所有的超過sql語句( 超時參數long_query_time單位 秒),獲得表鎖定的時間不算作執行時間。慢日志默認寫入到參數datadir(數據目錄)指定的路徑下。默認文件名是[hostname]_slow.log,默認超時是10秒,默認不開…

分數相同名次排名規則C語言,如何給數據排名(相同分數相同名次)-excel篇

使用Rank函數來做數據排名該函數是返回一個數值在一個數字列表中的排名。語法:RANK(number,ref,order)RANK(對象,范圍,參數)number(必填參數):是特定單位格中的數據,需要在整個數字列表中排名的單個對象。ref(必填參數):是指需要排名的整體數列。即范圍&…

子窗體列表在菜單中的實現

想在菜單中加入子窗體的列表,上網找了半天,都很麻煩,后來看看了菜單的屬性,發現里面有個MdiList屬性,設置成true,搞定,暈。 轉載于:https://www.cnblogs.com/catzhou/articles/258450.html

MySql的連接查詢

若一個查詢同時涉及到兩個或者兩個以上的表,則稱之為連接查詢。常見的包括:等值連接查詢,自然連接查詢,非等值連接查詢,自身連接查詢,外連接查詢(左右連接)。 1.等值與非等值連接查詢…

linux下ssh通過公鑰登錄服務器

經常會通過ssh登錄遠程服務器,一種是通過密碼方式登錄,一種是通過公鑰登錄。 如何設置通過公鑰登錄服務器 1. 首先生成自己的公鑰和私鑰 ssh-keygen 命令用來生成公鑰和私鑰-t 用來指定密鑰類型(dsa | ecdsa | ed25519 | rsa | rsa1&#xff…

qt運行C語言后無顯示,qt designer啟動后不顯示界面問題的原因與解決辦法-站長資訊中心...

Qt 5.6.1無論是在vs里雙擊ui文件還是直接啟動designer.exe都一直無法顯示界面,但任務管理器中可以看到該進程是存在的。前幾天還正常的,但昨天加了一塊NVIDIA的顯卡(機器自帶核顯),可能與此有關。幸好還可以通過QtCreator打開ui文件進行編輯。…

OpenSolaris北京用戶組的第一次活動

OpenSolaris北京用戶組的第一次活動作者: BadcoffeeEmail: blog.olivergmail.comBlog: http://blog.csdn.net/yayong2005年10月10月15號,OpenSolaris北京用戶組在北京西郊賓館會議廳組織了成立以來的第一次活動。盡管OpenSolaris早在2005年6月14日就正式開放源代碼&…

. SQL多條件查詢存儲過程

編輯器加SQL多條件查詢存儲過程 2010-05-13 17:06:29| 分類: SQL | 標簽: |字號大中小 訂閱 . 例一、 ALTER proc SelectProduct ProdID varchar(10), ProdName nvarchar(30), CategoryID varchar(5), MinPrice decimal(10,2), MaxPrice decimal(10,2) a…

矩陣轉置c語言的思路,矩陣轉置 (C語言代碼)

解題思路:注意事項:參考代碼:#includeint main(){int n,s[100][100];void transposition(int(*p)[100], int n);scanf("%d", &n);for (int i 0; i < n; i){for (int j 0; j < n; j)scanf("%d", *(s i) j);}transposition(s, n);return 0;}vo…

Android PermissionUtils:運行時權限工具類及申請權限的正確姿勢

Android PermissionUtils&#xff1a;運行時權限工具類及申請權限的正確姿勢 ifadai 關注 2017.06.16 16:22* 字數 318 閱讀 3637評論 1喜歡 6PermissionUtil 經常寫Android運行時權限申請代碼&#xff0c;每次都是復制過來之后&#xff0c;改一下權限字符串就用&#xff0c;把…

實現帶下拉菜單的工具欄按鈕

在工具欄中使用真彩色圖標 實現帶下拉菜單的工具欄按鈕 20050916轉載于:https://www.cnblogs.com/henryzc/archive/2005/11/08/271346.html

文件目錄管理與顯示c語言,Centos 7 文件和目錄管理

查看權限在終端輸入:ls -l xxx.xxx (xxx.xxx是文件名)那么就會出現相類似的信息&#xff0c;主要都是這些&#xff1a;-rw-rw-r--其中&#xff1a; 最前面那個 - 代表的是類型中間那三個 rw- 代表的是所有者(user)然后那三個 rw- 代表的是組群(group)最后那三個 r-- 代表的是…

Linux基礎監控小工具nmon

nmon是一種在AIX與各種Linux操作系統上廣泛使用的監控與分析工具&#xff0c; nmon所記錄的信息是比較全面的&#xff0c;它能在系統運行過程中實時地捕捉系統資源的使用情況&#xff0c;并且能輸出結果到文件中。nmon工具可以幫助在一個屏幕上顯示所有重要的性能優化信息&…