- 實現領域驅動設計
- (美)沃恩·弗農
- 1856字
- 2020-09-05 00:21:58
致謝
非常感謝Addison-Wesley出版社給我機會出版本書。正如我之前在上課和演講時所說,我將Addison-Wesley看成是一個懂得DDD價值的出版商。在本書的編輯過程中,Christopher Guzikowski和Chris Zahn (Dr. Z)給了我很大的支持。那天,Christopher Guzikowski打電話給我,說他希望我成為他的簽約作家。我是不會忘記那一天的,我也不會忘記Christopher Guzikowski對我的鼓勵。當然,是Dr. Z將本書的文本變成了可出版的狀態。感謝我的出版編輯Elizabeth Ryan協調本書的出版細節。同時,我還要感謝我的技術編輯,Barbara Wood。
回到從前,Eric Evans花了他職業生涯里的5年時間完成了DDD的定義工作。沒有他的努力,沒有從SmallTalk和模式社區中迸發出來的智慧,許多開發者都只能依舊苦苦摸索,最終交付劣質的軟件。可悲的是,這樣的問題太常見了。正如Eric所說,那些劣質的軟件以及開發團隊無創新式的枯燥性幾乎使他離開軟件領域。因此,我們欠Eric一個大大的感謝。
Eric邀請我參加了2011年的DDD峰會。會畢,大家一致認為,DDD的領導層應該提供一套指導以幫助更多的開發者在DDD上取得成功。那時,我已經寫本書有很長一段時間了,并且我們充分地體會到了開發者們所缺少的東西。我自告奮勇,決定寫一個文章系列來介紹有關聚合的“經驗法則”。之后,我將這個名為“高效聚合設計(Effective Aggregate Design)”的文章系列當成了本書第10章的基礎。當該系列文章在dddcommunity.org網站上發布時,我才知道,人們對這樣的指導真是如饑似渴。感謝那些DDD領導層中審閱了這個文章系列的同仁們,并感謝他們為本書提供的建議和反饋。Eric Evans和Paul Rayner對該文章系列做了多次細致的審閱。另外,我還從Udi Dahan、Greg Young、Jimmy Nilsson、Niclas Hedhman和Rickard O berg處獲得了反饋。
特別感謝DDD社區的資深成員,Randy Stafford。幾年前,我在丹佛舉行DDD演講,Randy也參加了。之后,他敦促我更多地參與到更大的DDD社區中去。一段時間之后,Randy將我介紹給了Eric Evans,由此我得以在DDD社區中與大家一起討論問題。我的一些想法并不那么容易達到,而Eric則說服我們將關注點放在一些具有近期價值的東西上。正是有了那次討論,才有了后來2011年的DDD峰會。雖然Randy由于忙于Oracle Coherence相關工作而無法參與本書的撰寫,我想以后我是可以和他合作來寫點什么的。
非常感謝Rinat Abdullin、Stefan Tilkov和Wes Williams,他們都為本書撰寫了一些專題內容。要了解有關DDD的一切幾乎是不可能的,要在軟件開發的各個領域都成為專家更不可能。這也是為什么我邀請他們撰寫本書的第4章和附錄A中的專題。感謝Stefan Tilkov在REST方面給我的幫助,感謝Wes Williams在GemFire上的經驗,也感謝Rinat Abdullin與我們分享有關事件源和聚合實現方面的知識。
本書早期審閱者之一是Leo Gorodinsk。我第一次見到Leo是在丹佛。他根據自己的項目中采用DDD的經歷向本書提出了很多寶貴的反饋。我也希望本書能夠像他幫助我一樣幫助他。我將Leo看成是DDD未來的一部分。
還有很多人都為本書的至少一章提出了反饋。其中,那些更具批評性的反饋提供者有Gojko Adzic、Alberto Brandolini、Udi Dahan、Dan Haywood、Dave Muirhead和Stefan Tilkov。特別是,Dan Haywood和Gojko Adzic提供了很多早期的反饋,其中主要是關于本書“最難讀”的那些內容。我很高興他們能夠忍耐下去并且幫我做出更正。Alberto Brandolini在戰略設計,特別是上下文映射圖方面的洞見使得我將關注點集中在這些概念的核心上。Dave Muirhead在面向對象設計、領域建模、對象持久化和內存數據網格方面——包括GemFire和Coherence——都擁有非常豐富的經驗。本書中對對象持久化歷史和實現細節的講解便是受他的影響而完成的。除了在REST方面的貢獻,Stefan Tilkov還在SOA、管道和過濾器方面向我提供了額外的支持。最后,UdiDahan幫助我澄清了有關CQRS、長時處理過程(即Sagas)和NServiceBus方面的概念。其他為本書提供了有價值反饋的還有:Rinat Abdullin、Svein Arne Ackenhausen、Javier Ruiz Aranguren、William Doman、Chuck Durfee、Craig Hoff、Aeden Jameson、Jiwei Wu、Josh Maletz、Tom Marrs、Michael McCarthy、Rob Meidal、Jon Slenk、Aaron Stockton、Tom Stockton、Chris Sutton和Wes Williams。
Scorpio Steele為本書提供了非常棒的插圖。Scorpio使IDDD團隊的每一個人都成為了超級英雄。我的朋友Kerry Gilbert為本書做了非技術性的審閱。其他人的幫助使得本書在技術上是正確的,而Kerry則在行文語法方面給了我很大的幫助。
我的父母為我的寫作提供了靈感,在我這一生中,他們一直在支持著我。我的父親——本書“牛仔的邏輯”幽默片段中的AJ——并不只是一個牛仔。不要搞錯了。成為一個不錯的牛仔已經非常好了,而我的父親則在很多方面都展現出了他的才藝。除了喜歡飛行之外,我的父親還是一個優秀的土木工程師、土地測量員,一個有天賦的談判高手。另外,他還依舊喜歡著數學,并且研究星系。在我10歲的時候,我父親就教我如何求解直角三角形。謝謝您,父親,在我很小的時候就教給我這些。還要感謝我的母親,她總是在我面臨挑戰時給予我鼓勵和支持。
雖然本書是獻給我的妻子Nicole和我們的兒子Tristan的,我還是想在這里再特別提及一下。他們使得我堅持寫下去并最終完成本書。沒有他們的支持和鼓勵,這些都是不可能的。太感謝你們了,我親愛的Nicole和Tristan。