2006年,國內互聯網才剛剛萌芽,大家甚至還不習慣網購,大多數在校生都在宿舍裏刷魔獸世界副本。但企業軟體開發卻得到了蓬勃發展,各大公司和事業單位都紛紛進行信息化轉型。
然而大家很快發現,企業應用業務邏輯的複雜度要遠遠高於技術本身,且企業IT人員很難描述清楚他們真正的業務,廣大程序員也普遍缺乏挖掘真正需求的能力。整個開發過程更多的是瀑布式,開發人員一次性收集需求,可能半年後才會和業務人員再次溝通。大多數企業軟體就是在這樣的環境下硬著頭皮上線的,其質量可想而知。
隨著《領域驅動設計》中文版的首次發布,DDD(Domain-Driven Design,領域驅動設計)的概念正式進入中國。當時業界普大喜奔,認為它能指導程序員更精準地收集領域知識,進行更合理的設計,企業應用的銀彈出現了。
當時的我正處於多層架構的啟蒙階段,掙扎於企業系統的泥潭,又剛剛被Martin Fowler的《企業應用架構》洗了一遍腦,自然也隨波逐流地買了一本,捧在手裡翻來翻去,但反反覆復就是看不懂。當時以為在貧血模型裡面加幾個方法就是領域模型了,把DAL或DAO改名成Repository就是資源庫了。而且身為程序員,自然願意去關注那些能指導我們寫代碼的戰術設計方法,對那些真正能幫助我們進行合理設計的戰略設計方法,則視而不見(可能是因為看也看不懂)。
多年過去,這本書仍然作為我的鎮宅之寶戳在書架顯眼的位置,希望能有識貨的朋友來訪時能一眼瞧見,伸出大拇指羨慕嫉妒地說「這麼老的書你都有」。或者偶爾拿出來拍張照片在朋友圈曬曬,以炫耀自己當初的見識。順便翻開一頁,把鼻子湊上去聞一聞來自12年前的墨香。