上周六(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架构设计的交流会。
可能技术很厉害的专家并不一定很擅长上台分享,而我站在台上现场分享比我用文字表达时状态要好很多,以后多争取一些分享的机会。