評點經典軟體書籍

來源:互聯網
上載者:User

Effective C++: 55 Specific Ways to Improve Your Programs and Designs
More Effective C++: 35 New Ways to Improve Your Programs and Designs

如想成為一名合格的C++程式員,有許多經典的書籍可以推薦;然而,若想成為一名高效的C++程式員,就絕對不能錯過Scott Meyers的這兩本名著。Meyer幾乎掀起了Effective編程的熱潮,例如之後的Effective STL,以及繼承了同樣風格的Bill Wagner之Effective C#,都是這一系列的佼佼者。人們津津樂道於書中的條款,運用在編程實踐中,並深深為Meyer的技術涵養所折服。現實正是如此,運用C++語言開發項目,就好似要穿過一片雷區,戰戰兢兢,帶著撞大運的思想硬著頭皮衝鋒陷陣,一不小心,就會出師未捷身先死。Meyer的這兩本著作,是協助我們穿越雷區的探測器,可以提醒我們避開危險的地雷,甚至協助我們撤除地雷,使得我們可以安然通過,到達勝利的目的地。

我在編寫C++代碼時,常常會翻閱這兩本著作。我無法將它們束之高閣。每當我遇到C++的陷阱而無法自拔時,都需要從書中找到解決問題的利器。這是C++程式員案頭必備之書,即使對於Java和.NET程式員來說,閱讀這兩本著作,仍有裨益。雖然GC可以協助我們規避許多記憶體陷阱,不至於因為記憶體流失而導致系統崩潰;然而從高效的角度來看,無論何種語言,都有其相通之處,書中的議題可以說是放之語言的四海而皆準。例如在Effective C++中,對設計、實現、物件導向等諸多概念的深入剖析;在More Effective C++一書中,對於多態、異常、效率以及其他的雜項討論,完全可以脫離具體的C++語言,從通用的編程角度獲得收益。

所謂“經典”,意味著經久不衰,不因時間的流逝而失去其存在的價值。語言的變遷在這數十年內,讓人應接不暇,但C++的魅力仍然不減。我想,即使在將來C++走向了末路,這兩本書仍然不會過時,它會繼續爆發出強大的生命力,因為,它抓住了軟體設計與開發的本質。

Pragmatic Programmer: From Journeyman to Master

Ward Cunningham說:“如果我在管理一個項目,這本書的作者就是我想要的人……如果辦不到,我就會要讀過他們的書的人。”這樣的讚譽初看似乎有些誇張,仔細思考,卻又恰如其分,因為本書反覆要證明的其實僅有一個論調,那就是注重實效的哲學。我們這個行業,正需要注重實效的程式員。

我並非為了得到Cunningham的僱傭而閱讀本書,更不是奔著從小工到專家的噱頭宣傳來吹捧本書。我閱讀它,是因為它值得閱讀;我推薦它,是因為它值得推薦。本書得到的讚譽實在太多了。Kent Beck、Martin Fowler、Kevin Ruland……他們都是這個行業的大師級人物。有他們的推薦難道還不夠嗎?站在他們的面前,我不過是一個小工而已。但不要忘了,本書面對的讀者,不是專家,不是大師,就是普普通通的程式員小工。

記得石頭湯嗎?記得破窗戶理論嗎?原始碼被貓吃了嗎?這就是Andrew Hunt與David Thomas二人書籍的特點。生動、活潑、淺明、扼要,可是仔細沉思,這些比喻無不包含雋永的意味,印象深刻,可以作為編程的箴言或者座右銘。

本書不只有精巧的比喻,Hunt與Thomas兜售的不是文學理論,也不是華麗哲學,而是編程之道。如果說Martin Fowler的《重構》是與代碼的壞味道做鬥爭,那麼本書就是向編碼舊習與陋習的宣戰。它既有戰略層面的思想與決策,又有戰術層面的技巧與招式。整體而言,它提供了程式員修鍊的法則,努力遵循這些法則,你將有機會成為專家。本書涵蓋了編程與專案管理的方方面面——如何錘鍊經得起時間考驗的代碼,如何開始卓有成效的開發,如何解決醜陋的重複與僵化,如何克服合作的傲慢與偏見,如何提高演算法的效率與品質,如何構建易於測試的代碼……

成為專家的夢想在遠方漂浮不定,本書會成為你的瞄準器。好的,瞄準,開槍,中靶,紅心!

Art of UNIX Programming

Unix是Geek們肆意徜徉的歡場,這裡面有老牌的駭客,也有新銳的鬥士;有資深的科學家,也有怪誕的不合群者。他們在這裡縱橫著才氣,並以此度過黃金的青春。本書是Eric S. Raymond在這歡場中浪蕩的行吟詩,如荷馬史詩一般的滄桑、不朽與蕩氣迴腸。之所以給我這樣的印象,因為本書第二章的內容,正是以史詩的風格回顧了Unix的起源與曆史變遷。

許多讀者很容易被本書的書名所迷惑,以為這又是一本大部頭的講述Unix核心與開發的百科全書。若這樣想,你或許會失去一位重要的良師益友。尤其對於Windows作業系統下的開發人員,不要因為Unix而排斥它,或者敬而遠之,編程藝術是沒有作業系統界限的。

好罷,讓我們首先來看看本書給出的Unix哲學。諸如:使用簡潔的介面拼合簡單的組件,清晰勝於機巧,策略同機制分離,設計追求簡潔,健壯源於透明與簡潔……這是在談論Unix嗎?Raymond貌似醉翁之意不在酒啊!

讓我們再來看看本書的第二部分與第三部分。封裝和最佳模組大小,緊湊性和正交性,Unix介面設計模式,談談複雜度,重用:論不要重新發明輪子……好了,我們可以得出結論——Radmond不過是假Unix之名向受眾傳播設計之藝術,他是Unix文化的佈道者,優雅設計的先驅與導師。我對Unix一竅不通,可我卻寧願花去我閑暇時間的二分之一閱讀本書,直到自己深深烙上Unix文化的符號。我收穫的經驗是,完成本書的閱讀,實則是走向耶路撒冷的一次朝聖。我的景仰並非獻給Art of UNIX Programming,獻給Eric S. Raymond,而是二十世紀最偉大作品之一的Unix。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.