书评 – 程序员经典读物(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,我借用一下不是為了偷懶,而是覺得他的工作干得很漂亮,唯一的遺憾是沒有找到最新的更新。
轉載于:https://www.cnblogs.com/xumaojun/p/8541612.html
總結
以上是生活随笔為你收集整理的书评 – 程序员经典读物(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到很多老鼠预示着什么
- 下一篇: urllib库的使用