溫昱書評:讀《代碼之道》
索然無味、毫無觀點的書永遠引不起人們的閱讀興趣。放心,《代碼之道》絕對不是!
形式上,本書中的每一篇文章都通過講故事等方式提出問題,然後分析問題根源,最後給出改善建議。其中,問題的提出往往極具戲劇效果(作者也坦承“為了達到效果,我又一次誇大了問題”),這樣一來,凸顯了問題的巨大負面影響,且使閱讀過程變得有趣。於是,當捧書在手時,產生欲罷不能的感覺,也就並不奇怪了。
¨ 不必說“我認識一些架構師,他們的生活都是失控的”、“回到現實世界來吧,到別的經理手下幹活也未必解決問題”這些亦莊亦諧的話點到了人的痛處——現實就是這樣的!
¨ 也不必說“你總是在傷害你愛的人”、“瞭解並接受你所選擇的生活”這些富有哲理的話讓人頓生錯覺——本書的上架建議真的是“軟體工程”?
¨ 單是“管理層不切實際”、“如今,大家都在跨部門合作上空口說白話”這些你想說又不敢說的話就足以“抓”住你——此書我得好好讀讀!
定位上,本書不僅是實用建議錄,也是深入思考集。書的字裡行間,透著作者的良苦用心:不僅“推”給你體現其多年經驗精華的實用建議、醫“病”良方,更要“拉”你就一線開發中的關鍵問題進行深入思考、對比分析。這是十分值得讚賞的。即使在我並不認同作者闡述的某個觀點之時,我對作者“引發思考”良苦用心的讚賞也未減一分。
內容上,都是和一線的“軟體工程師和工程經理”息息相關的話題。首先,是軟體開發流程。第1章,談了專案管理方面的經驗。第2章,核心觀點是“敏捷,但應理性”。第3章的真正含義不是“停止寫規範書”,而是“為了提高協作效率,建議採用非正式文檔”。第4章,闡述開發人員和測試等其他角色之間的關係。第5章談品質,品質=業務上有價值+工程上無Bug。第6章講前期設計。……是的,過程管理、專案管理、溝通管理、角色設定、品質管理、前期設計,這些正是軟體開發流程關心的。
除此之外,本書有30%的內容覆蓋一線開發人員和經理成長的話題。例如,我很喜歡第9章。作者為經理們提供了實用建議:如何識才、如何面試、如何協助平庸員工、如何避免團隊“內鬥”……。很中肯的良方。
有趣的是,這本書的很大一部分我是在外出講課的火車上讀的,而讀此書的感覺恰似坐在晃動的火車上——它不容你的大腦懈怠,因為讓你“為之一振”的觀點會以極高的頻率不斷“跳”出來,衝擊力十足。
¨ “有沒有一種方法在大產品和小團隊之間的缺口上架起一座橋樑呢?答案是肯定的,有!那就是架構。架構最重要的一點,就是它能把難以處理的大問題分解成便於管理的小問題。”非常到位的總結。我在架構培訓中也常講:架構要設計到什麼程度呢?第一要支援並行的詳細設計,第二可根據團隊和項目情況靈活調整,第三業務層和通用機制應更深入設計。
¨ “工程的本質就是要真實地知道,而不是靠猜測。”言簡意賅,卻切中肯綮。
¨ 別的公司,團隊裡有互動設計師、文檔專員、過程經理等角色,你的公司要怎麼做的?“如果那是一款很熟悉的產品,目標也很明確,那麼你可能不需要很多的專員。如果那是一款不常見的產品,目標也很模糊(至少對於工程師來說是這樣),那麼你需要較多的專員。”這就是《代碼之道》給出的回答。
¨ ……
經驗,對軟體從業者的重要性,怎麼強調都不過分。而在本書中,作者無私地分享了他過去在軟體行業6個不同的公司、28年的職業生涯中提煉出來的經驗。相信大家都能從中找到自己需要的。
http://www.china-pub.com/STATIC07/0810/jsj_dmzd_081022.asp