《簡單之美》這本書的內容有些另類,毫不似書名所呈現的中規中矩,但確實體現了一種美,是一種簡單到極致的優雅,彷佛又繁複如星空般的深邃,包容如峭立千仞之高的山壁。這是一本能夠稱之爲輕鬆加愉快的思想隨筆,又是一篇如杜拉拉昇職記般的職場小說,它還貫穿了整個軟件開發過程,揭露了從方法論、需求、架構設計、編碼實現,到測試與維護以及團隊管理的諸多要訣。這正是本書的另類之處。 架構
我在閱讀本書時,不由自主地被放在書中每章篇首的實踐場景所吸引,甚至忽略了本書的重要內容,直接根據提示轉到下一個章節的實踐場景,一鼓作氣,直到將這些實踐場景閱讀完畢。做者揮灑自如的文筆,入木三分的人物刻畫,以及細膩含蓄的情感描寫,將我完全吸引住了。在大結局中,孔如之與兒子在陽光中巴黎聖母院前的對話,讓人意猶未盡,彷佛滿懷但願,卻又歷盡滄桑,真是讓我產生「情何以堪」的感慨。 框架
這是本書感性的一面了。只是看完這9篇由實踐場景片斷組成的小說,就已經值回票價了。而從技術書籍的角度來看,本書的意義顯然並不在於此,做者完整地勾勒出軟件開發的全貌,諸多感悟與體會均可以成爲軟件開發人員的重要借鑑。做爲本書理性的一面,這些內容須要反覆閱讀和分析琢磨,才能引發你的共鳴,許多模糊在心頭的概念,在做者簡明扼要的敘述下,或許就會產生「撥開雲層見月明」的感悟。 ide
以本書第4章爲例。做者給出了一個簡單的實例描述了框架構建的過程。首先從背景描述出發,展示了對保險業務中對保單進行處理的需求功能。這段背景描述將複雜的保險需求闡述得很是清楚而富有條理,體現了做者撰寫文檔的高超能力。 測試
接下來是做者對這一背景描述的抽象。這段抽象有理有據,較好地體現了從需求捕獲到分析的過程演變,利用抽象搭建了基本的領域模型。緊接着是對約束的思考,這是架構師必須完成的工做。根據對需求的抽象和關於約束的思考,就可以作出合理的架構決策。做者在本書中反覆強調的「使用天然語言和講故事的方式」,經過實例獲得了具體的展示。事實上,在Joel on software一書中,Joel Spolsky也提出了一樣的觀點,認爲經過講故事的方式描述用例場景,能夠更好地促進理解與交流。本書做者擴大了這種方式的應用範圍,引入到架構設計過程當中。對這一作法,我深表贊同。事實上,我在架構過程當中,也經常採用相似手法,經過在文檔撰寫設計的故事場景,幫助我梳理設計思路,有時候,甚至在文檔中自問自答,在這樣的編寫過程當中我慢慢找到了解決方案。 編碼
本書對領域模型的討論也有着我的獨到的看法。例如他對靜態模型和動態模型的分類,又例如他提出了使用貧血模型的好處。在Martin Fowler提出貧血模型以後,業界曾經掀起過對貧血模型與充血模型的爭論。然而,爭論到了最後,也沒有一個確切的結果。從經典的OO原則來看,它要求將對象的數據和行爲組織在一塊兒,這正是批判貧血對象的主要論據。我比較傾向於這個觀點,認爲對象沒有行爲,就是「死」的,缺少自治的能力。但在實際開發過程當中,我也經常體會到貧血模型的好處,尤爲是在模型重用與解耦方面,貧血模型都有其顯著的優點。本書做者認爲,貧血模型的「第一個好處是,有利於信息交換。第二個好處是,清晰了對象的職責。第三個好處是,實體對象(貧血對象)的實現更加靈活。第四個好處是,能夠確保實體對象(貧血對象)只能在內存中用於計算。」這些好處都說到了點子上。雖然,我對於貧血對象的使用仍然抱有謹慎態度,但本書對此的闡述依舊給我提供了不錯的參考。 架構設計
在項目管理方面,書中強調了「負責制度」的實施。這首先關係到責任定位的問題。項目延遲或失敗,到底是項目管理的問題,仍是架構設計的問題?是編碼實現的問題,仍是測試維護的問題?做者認爲,負責制度的缺失可能會影響項目的質量。書中提到:「在軟件開發過程當中,人是最重要的因素,而責任、權利和利益是保證這個因素髮揮做用的關鍵。」「創建負責制度的目的,不是爲了懲罰某人,也不是爲了永久取消某人的職業發展權利,它只是經過責任人利益損失的形式,來代表這樣一個事實:沒有金剛鑽,別攬瓷器活。」事實上,負責制度的關鍵不在於制度的確立,而在於執行。若是沒有建立公平、公開、公正的執行環境,這種制度只會給軟件開發帶來負面影響。這也是做者僅僅提出問題,卻沒有給出好的答案緣由所在。相對而言,我我的更傾向於Scrum「回顧會議」,在基於迭代與漸進式開發的基礎上,這種方式更可以有效解決項目開發中存在的問題。 設計
假若是新手閱讀本書,因爲缺少足夠的工做閱歷與開發經驗,很難理解做者寫做的意圖。但咱們絕對不能由於這種認識上的障礙,而將本書拒之千里以外。事實上,越早閱讀本書,越可以開拓讀者的眼界,提早感覺業界的真實與謊話,反而可以幫助新手更快地確立本身的職業生涯規劃。對於混跡行業多年的老鳥而言,閱讀本書,必定能找到那些似曾相識的畫面。做者對技術的深刻探討,也必定能給予咱們啓發,即便觀點不一樣,也能夠求同存異。所謂「嚶其鳴矣,求其友聲」,這是我在閱讀本書時收穫的如遇舊友般的快樂!對象