天天看點

書評 – 程式員經典讀物(1)

早幾天,籠統地就經典感慨了一番,接着來個逐一點評,算是有始有終了。經典是用來閱讀而非膜拜的道理,自然是明白的,雖然我是屬于比較推崇經典那一類的。閱讀大緻就是一個和作者交流的過程,有興緻時無妨感慨點評一番,算是對作者的一種緻敬吧。

1 Steve McConnell - Code Complete: A Practical Handbook of Software Construction 

  感言:二獲Jolt Awards,算得上衆望所歸了,印象中,國内書商有炒作過第二版。作者主持過SWEBOK工作,是以寫起書來也明顯帶有百科全書式的味道。我對SWEBOK一類百科全書式的東西,一般是不太感冒的,但這本書是個例外。作者學識淵博,卻并無絲毫學究氣,文筆洗練樸實,衆多話題娓娓道來,處處透着一股舉重若輕的味道。并不太關注各程式設計語言之趣向,直面程式設計之實質性内容。Coding之外,軟體開發其它過程均有所涉及。有閑時,尋一寂靜處,一邊品茶,一邊就着此書做些梳理功夫,慢慢地自然而然可收洗髓伐毛之功了。如此一來,也就不太适合初學者了。

2 Elisabeth Freeman, etc.  -  Head First Design Patterns

  感言:二名作者屬于不怎麼出名那一類的江湖高人,後來還整了一本HTML的書,影響就遠遠無法和這一本相比了。為這本書作序的一堆高人中,前二個就是GOF之二,GOF作為Design Pattern之父,當時有一位已仙遊走了。我相信讀過第一章後對Strategy Pattern以及OO Principle仍然覺得沒有啥感覺的,應該是不太可能發生的事情。如果有人如此不幸,我估計有二種可能,第一可能是英文太糟糕了,第二可能是買錯書了。此書并無甚原創性,屬于闡釋Design Pattern一類的著作,但是寫的太精彩了,不僅絕頂高手好評如潮,更難得的是由初級向進階突破進階時尤其給力。

3 Steve McConnell  - Rapid Development 

  感言:作者是排名第一那本作者同一人,的确是太有才了。如前面提到的,作者主持過SWEBOK工作,比較有意思的是,這本講軟體開發過程的著作有很濃的靈活開發味道,我一直很好奇,一位軟體工程權威組織的專家居然整了一本富有靈活精神的書?而且好幾年後,Agile Development這個詞才出現。

4 Erich Gamma,etc.  - Design Patterns: Elements of Reusable Object-Oriented Software 

  感言:此書在程式設計語言之外為OOP開辟了一片獨立的天空, 影響之深遠,江湖上可謂無人不知。OO修煉過程中,知易行難的感慨向來頗多。如果把OO理念比作九陰真經,那Design Pattern就是降龍十八掌了。九陰真經太玄妙,降龍十八掌卻是一招一式清清楚楚毫不含糊,一個個Design Pattern恰如降龍十八掌之各掌, 妙用各有不同,卻處處展現同一個OO之理念。由此,Design Pattern打開了踐行OO的友善之門。原著用的是C++,但一招一式無疑都是跨越語言的。另外,原著還采用了早期的UML,3年後,UML正式成為标準。

5 Bruce Schneier  - Applied Cryptography: Protocols, Algorithms, and Source Code (2nd Edition) 

  感言:未讀過。

6 Robert C. Martin  - Agile Software Development: Principles, Patterns and Practices 

  感言:作者是OO領域的大師,靈活開發先驅之一,XP鼓吹者。書名有一定誤導,除了靈活開發之外,精華其實是OO和TDD踐行部分。實戰性強,而且所舉例子均是很正常的企業應用。此書先出的Java版,後出的C#版。印象中,作者并未諱言其早期對XP的疑惑,而附錄中竟轉載了一個不太出名的高人關于Coding就是Design的高論,對傳統軟體工程陣營的沖擊無疑是颠覆性的,即使在靈活社群内部,這個觀點也是很激進的。一個早已名揚天下的大師,在根本立場上居然發生了180度的大逆轉,令人感慨的已經不是大師個人的勇氣,而是軟體行業仍然是多麼年輕。

7 Joel Spolsky  - Joel on Software 

  感言:典型地美式實用主義文風,擅長鋪墊,于平淡中自然演繹出自己的觀點或感受。不是一本談具體Coding的技術書,也不是系統談Process的,類似于專欄文章的選集。印象中,作者本是技術高手,曾主持過早期MS Excel VBA項目。近幾年比較火的技術社群stackoverflow.com,作者是主要策劃人之一。

8 Tom DeMarco, Timothy Lister  - Peopleware: Productive Projects and Teams (2nd Edition) 

  感言: 就好像是推崇所謂人本主義管理那一套的專家,無意中發現了軟體開發領域種種愚蠢+惡心的搞法,激憤之下忍不住出手相助,于是整出了這一類書。早些年讀的時候,着實覺得很感動,現在我覺得這類書的作用主要就二個,一是為媒體提供了一些可以沒完沒了炒下去的話題,二是讓聰明的管理者變得更虛僞或更開明,讓自以為是的管理者變得更……。

9 Frederick P. Brooks  - The Mythical Man-Month, Anniversary Edition (2nd Edition) 

  感言:作者是Turing Award獲得着,不過這絕不是這本經典長盛不衰的原因。Intel的摩爾定律都已經失效了,而這本經典裡面那個著名的斷言依然繼續着它淡淡的歎息。所謂“朝聞道,夕死可矣”,如果一生隻能讀一本軟體開發方面的書,我願意選這一本。我個人認為應該排第一。

10 Martin Fowler  - Refactoring: Improving the Design of Existing Code 

  感言:Martin Fowler的書,相信很多人和我一樣,每本必讀。這一本是OO實踐中從初級向進階突破的必讀經典。早讀早受益。

11 Mike Cohn  - Agile Estimating and Planning 

12 Alistair Cockburn  - Writing Effective Use Cases 

  感言:作者是靈活開發先驅之一,思想富有原創性,哲理性很強。不過這本書實在看不出來,我一直奇怪這本書為何如此出名?有意思的是,如今Use Case風頭已經不如User Story了。

13 Bertrand Meyer  - Object-Oriented Software Construction (2nd Edition) 

  感言:作者是OO先驅之一,大師級學者。此書屬于OO早期的經典,影響深遠,學術性較強。由于和OO實戰有一定距離,如果不是特别喜歡追溯思想源頭,建議不要浪費時間,因為可以替代它的更貼近實戰的經典不少。如這個清單裡面Robert Martin和Martin Fowler的著作。

14 Steve McConnell  - Software Estimation: Demystifying the Black Art 

  感言:作者是排名第一那本作者同一人,的确是太有才了。未讀過。

15 Mike Cohn  - User Stories Applied: For Agile Software Development 

16 Donald E. Knuth  - The Art of Computer Programming, The, Volumes 1-3 Boxed Set (2nd Edition) 

  感言:被媒體反複炒過。作者是大師級計算機科學家,也是Turing Award獲得者。嘗試讀過,實在讀不下去,多少有點後悔年輕時沒多下點功夫。

17 Martin Fowler  - Patterns of Enterprise Application Architecture 

  感言:我個人認為這是企業應用領域的聖經。如果是從事企業應用開發的,建議讀至少3遍,如果是架構師,至少6遍。并不是暗示難懂,恰恰相反文筆樸實自然,猶如清澈小溪一般通透,主要是内容太豐富了。

18 Jeffrey Friedl  - Mastering Regular Expressions 

19 Andrew Hunt, David Thomas  - The Pragmatic Programmer: From Journeyman to Master 

  感言:二位作者均是靈活先驅。典型的實用主義至上視角,文筆很好,基本上不提具體的代碼,均是由實戰中得來的真知灼見。年頭久了點,但可讀性仍然很好。The Pragmatic Programmer作為一個系列,也出了不少精品。

20 Karl E. Wiegers  - Software Requirements (2nd Edition) 

  感言:讀過部分章節,坦白說,沒有啥感覺。有一點可以肯定的是,很多需求模闆,特别是Use Case模闆,被廣泛借用。

如果堅持讀到這裡,估計會有人和我一樣對上面的排名有不同意見。這個排名并不是來自某個特權威的機構,而是來自一個名不見經傳的部落客

http://www.noop.nl/2008/06/top-100-best-software-engineering-books-ever.html

,我借用一下不是為了偷懶,而是覺得他的工作幹得很漂亮,唯一的遺憾是沒有找到最新的更新。

繼續閱讀