上周六(5月16日)下午參加了博客園組織的DDD交流會,由netfocus(ENode的開發者湯雪華)來為我們分享一些DDD的經驗和框架。首先非常感謝蟋蟀發信息通知我,我才有機會參加,感謝蟋蟀和Dudu的精心准備,感謝netfocus湯兄專程從杭州趕過來為我們帶來精彩的分享!
今天上午蟋蟀已經發了一篇文章簡單介紹會議情況,我貼個鏈接:http://www.cnblogs.com/xishuai/p/ddd-theme-activity-part-one.html
最前面這個穿藍色襯衫的是我,我座位對面的是netfocus湯兄
會議計划是下午2點開始,我遲到了15分鍾,真沒想到那么遠,趕地鐵都花了1個半小時,一到會場看到大概20多個帥哥已經把會場坐滿了。蟋蟀讓我簽到后把他的(最靠前的)座位讓給我了,再次感謝蟋蟀。
會議的流程安排的很好,第1項是自我介紹,第2項是netfocus分享DDD和ENode框架,第3項是開放主題探討。
我覺得把自我介紹這個安排在第一個環節非常好也非常必要,因為互相了解大家的情況后能更好的交流,講師也能更好地根據參會者的情況及期許調整分享內容的側重點。如果議程上沒有這個安排,講師自己一般也會在開場階段通過提問調查了解參會者的情況。我過去有5年在企業培訓公司工作,從幾十人到上千人的各種規模企業家培訓,我做過數十次主持人和講師,還算是有一點經驗。周日參加的N09會議原本沒有這個安排,中途我私下建議tony加上了讓參會者自我介紹這個環節。
第一環節——自我介紹這個環節中,我的感受是這次參會者的能力素質普遍很高(應該有一半以上是架構師或技術團隊管理層),而且表達能力也普遍非常好,不像是內向的程序員性格。總之一句話,能認識這么多在上海工作的.NET技術界的精英人士,來這一趟真是很值得。還有一位AllEmpt朋友是專程從北京趕來參加這次會議的。
第二環節——湯兄的兩個多小時精彩分享(PPT下載 http://files.cnblogs.com/files/netfocus/ddd-enode.pdf),分為3個部分:1、DDD基礎知識,2、DDD領域建模的案例分析,3、ENode框架
DDD的很多概念並不是很容易理解,雖然有湯兄這樣的大牛分享,但如果以前沒有認真讀過《領域驅動設計》、《實現領域驅動設計》那兩本書的話,理解起來還是很有難度的。我是在博客園上看了dax.net和netfocus的博客后,先看了兩遍《實現領域驅動設計》,再看的《領域驅動設計》,再找了所有能找到的DDD資料和案例來看,感覺也似懂非懂,需要有更多交流探討的機會。
湯兄花了最多時間分享案例這個部分,這個很實用,特別是商品和訂單那個案例的設計,我今天給自己團隊分享了,明天可以直接在我們的項目中用上。有一些案例我沒有聽得很懂,比如WEB版的Project那個。
最后湯兄分享了ENode框架的設計思想和要點,因為我之前只看過netfocus博客上的文章介紹,沒有研究過ENode的源代碼,只能了解大體思路和應用場景(與DDD經典架構相比,CQRS架構能處理更高的並發量),不像其他參會者對ENode理解那么深。湯兄重點講了命令查詢分離、事件驅動和數據的最終一致性,因為時間的問題,在這一部分也沒講得太詳細。我自己的開發框架是采用經典DDD架構的,作為中小型平台項目,暫時已經夠用了。
湯兄因為自己的感興愛好,能用兩年的業余時間來開發和完善這個ENode框架,真是值得敬佩!
第三環節——開發主題探討,因為當時時間已經很晚,大家沒有太多時間展開交流,我主動爭取了機會,大致介紹了一下我的.NET新架構中DDD的實現、實際項目中DDD的運用及好處,也向大家請教了一些實踐DDD時遇到的問題,得到了很多朋友的熱情解答,特別感謝Ivan和攜程的那位朋友。
會后跟dudu、蟋蟀、AllEmpt一起吃晚飯時也交流了很多,讓我收獲不少,我也分享了一些我的經歷和感受,也給博客園提了一點組織會務的建議,我真心希望咱們的活動越辦越好,參與的人越來越多。
現在已經快兩點了,大腦有點遲鈍了,再加上打漢字比較慢,影響思維,實在沒有表達出這次會議的精彩內容。
再次總結一下我的感受:
DDD的思想和理念很好,但如果沒有好的框架支持,很難在實際項目中使用起來。而一個好的框架不能僅是DDD的實現,還需要解決很多通用的技術方面的問題(比如安全性、性能、異常處理等)。讓項目的成員少花時間寫重復的代碼,可以更專注在業務分析和領域設計上。
我到上海這一年多時間里花了大量時間加班加點做產品設計和架構設計,有很多時候遇到問題找不到人討論,做出好的成果找不到人分享,這是第一次在上海參加技術交流會,能認識到這么多有共同話題朋友,真的很開心,以后要多抽出時間參加活動,也要把一些好的經驗和成果分享給更多的朋友。希望博客園可以組織現代WEB架構設計的交流會。
可能技術很厲害的專家並不一定很擅長上台分享,而我站在台上現場分享比我用文字表達時狀態要好很多,以后多爭取一些分享的機會。