Forward

黃亮(Anthony)發表於2015-08-15

希望標題沒有誤導你。

我的意思是,這其實是一本好書,一本關於設計原則,最佳編碼實踐,測試驅動開發和程式設計藝術的好書。但是他們徑直把它稱為“現代C++程式設計,測試驅動開發”。哎...

喔,請不要誤解。這仍然是一本現代C++程式設計的書。我是說,如果你是一個C++程式設計師,你會喜歡這本書,它充滿了有趣和精益的C++程式碼。事實上,我認為也許程式碼遠多於文字。來吧,現在來瀏覽它。你能找到一頁沒有程式碼嗎?我猜機會不多。如果你想尋找通過一個又一個的例項學習現代C++實踐技巧的書,那麼你手中這本正適合。

但是,本書不光有現代C++程式設計,還有很多其它內容,非常多。首先,就我所知(我見過很多)在測試驅動開發方面,本書可能是最完整,好懂的描述。實際上,最近十年來發現的TDD問題,一半都在本書談到了,包括測試用例的脆弱性和模擬樁(Mock),單一斷言和Given-When-Then模板。這些它都談到了,還附加很多內容。此外,它並非學術化,不繫統,不連慣的問題綱要。相反,本書不光在例子和案例中討論這些問題,它還通過程式碼了展示問題和答案。

必須是一個C++程式設計師才能讀懂這本書?當然不是。本書的C++程式碼非常清晰,並且精心編寫,其中的思想非常好懂,任何Java, C#, C,甚至Ruby程式設計師都不會困惑。

本書還討論了設計原理。感謝上帝,本書是一個設計方面指南!它帶你一步步探索一個又個一個原理,一個又一個問題,一項又一項技巧。從單一職則原則到依賴反轉原則 ,從介面隔離原則到簡單設計的敏捷原則,從DRY到Tell-Don’t-Ask,本書像一個軟體設計思想和方案的金礦。同樣,這些思想也在真實的問題和方案場景下以程式碼的形式呈現。

本書還討論了最佳編碼實踐和技巧。書中擠滿了這些內容,從短小函式技巧(small methods)到結對程式設計,從程式設計訓練會(coding katas)到變數命名。這裡不光有成噸的最佳編碼實踐和技巧的資料,還有足夠的討論和詳細的闡述,作者在每一點上都把你領進了門。

確實,本書的標題完全誤導我們。這不是一本C++程式設計的書。這是一本軟體藝術的書,碰巧使用C++做為例子的程式語言。本書的最恰當的名字應該是:軟體藝術--例項以現代C++語言編寫。

因此,如果你是Java程式設計師,如果你是C#程式設計師,如果你是Ruby,Python,Php,VB,甚至COBOL程式設計師,你需要讀這本書。不要被封面的C++字樣嚇住了,無論如何讀一讀。如果你正在看,讀讀程式碼,它並不難理解。如果你正在學習最佳設計原理,程式碼技巧,程式設計藝術和測試驅動開發,你會發現這一點C++沒什麼大不了。

—“Uncle Bob” Martin Founder, Object Mentor Inc.

備註, 需進一步精化: design principles, coding techniques, craftsmanship的固定譯法,特別是craftsmanship. from the London school to the Cleveland school的故事?

相關文章