選單

它的強大的功效,會成為你智慧工具箱中的一個寶貴部分

第2版的《程式碼大全》是著名IT暢銷書作者史蒂夫·邁克康奈爾11年前的經典著作的全新演繹:第2版不是第一版的簡單修訂增補,而是完全進行了重寫;增加了很多與時俱進的內容。這也是一本完整的軟體構建手冊,涵蓋了軟體構建過程中的所有細節。它從軟體質量和程式設計思想等方面論述了軟體構建的各個問題,並詳細論述了緊跟潮流的新技術、高屋建瓴的觀點、通用的概念,還含有豐富而典型的程式示例。這本書中所論述的技術不僅填補了初級與高階程式設計技術之間的空白,而且也為程式設計師們提供了一個有關程式設計技巧的資訊來源。這本書對經驗豐富的程式設計師、技術帶頭人、自學的程式設計師及幾乎不懂太多程式設計技巧的學生們都是大有裨益的。可以說,無論是什麼背景的讀者,閱讀這本書都有助於在更短的時間內、更容易地寫出更好的程式。作者的思考問題的方式,與我的方式相當的接近,都是儘可能將多種、甚至矛盾的事物,放在一個整體的環境中來理解。比如對於隱喻,用於描述軟體開發的特徵的各種各樣的隱喻,其實各有其價值,如果能夠組合運用,自然能夠獲得一種平衡。正如作者所說:“使用隱喻又是件說不清楚的事情(fuzzy business)。

你需要適當地引申它的含義,才能從其中蘊含的深刻啟發中受益。但若你過分地或者在錯誤的方向上引申了它的含義,它也會誤導你。正如人們會誤用任何強大的工具一樣,你也可能誤用隱喻,但它的強大的功效,還是會成為你智慧工具箱中的一個寶貴部分。”

它的強大的功效,會成為你智慧工具箱中的一個寶貴部分

這樣的一種看法,可以說“中正平和、深具智慧”,這是我們在大多數關於軟體開發的論述中,很難看到的。

再比如說,作者在第三章時給出的一個表格:三種常見的軟體專案種類,及其典型的良好實踐。就將軟體分為商業系統、性命攸關的系統以及性命攸關的嵌入式系統。然後指出對於這三類不同的應用,在開發手段、管理強度、設計、構建、測試、部署等等方面的差別化策略。這樣的分類,自然就避免了將各種開發手段,簡單的對立起來比較的方法,顯得更加具有說服力。

再比如說,全書給出了相當多的Check List,這樣的表格,實在是大有益處,借用地圖的隱喻來書,這樣的CheckList,就是一個一個的定位器,它能夠幫助你認清自己的位置,瞭解問題所屬的範疇,瞭解應該努力的大致方向。這樣的“開發工具”,真是獨一無二。