今年的领域驱动设计交流会(DDDx)以 Eric Evans 发表主题演讲而拉开序幕,他演讲的重点是范型转变(paradigm shift),从早期领域驱动设计(Domain Driven Design)被视为面向对象设计(Object Oriented Design)的一部分,到如今领域驱动设计自成一家。Eric 将这种转变归功于当前编程语言的发展趋势,即除面向对象语言以外,还加入函数式语言:
在编写领域驱动设计之时,面向对象编程是占有统治地位的范型。当我成为程序员时,面向对象编程的确是令人兴奋的新事物,而后成为了占有统治地位的范型。正因如此,这两种事物在人们心中总有那么几分纠结,尽管领域驱动设计思想与面向对象设计思想在大多数人心中几乎是密不可分的,然而我却不以为然。而且现在我们开始发现对于其他事物的一些真正兴趣,并且承认这一点很重要。因此,今天的几个演讲涉及到领域驱动设计,而非特别地面向对象设置。
Greg Young 所发表的首个演讲就与这种转变有关,其中他谈到如何同时使用函数式编程和领域驱动设计。 Ian Johnson 提出了关于此话题的个人总结,以便更好地说明将此方法发挥得淋漓尽致有大可能:
在函数式领域驱动设计(functional DDD)方面,仍有些事物我无法认同: - 内聚(Cohesion):对象模型给我们带来的是函数的强内聚性,即便我们正在处理不可变的领域对象,随后所有的状态变更方法都被束缚在该对象内,并且可以隐藏在该对象内部,同外部世界隔离开来……
- 我们所处理的模型在哪里?通用语言(ubiquitous language)在哪里?我所见到的是,我们仍将动词(verbs)建模为方法、及事件形式,但是为了适应这种方法,名词(nouns)又该放在哪里?我们目前是否丢掉了名词?
Rinat Abdullin 推荐以下演讲:
- Eric Evans 所作的有关战略设计和既有形式的案例研究(Case Study Involving Strategic Design And Established Formalisms)
- Gregory Young 所作的关于领域驱动设计的函数式编程(Functional Programming with DDD)
- Alberto Brandolini 所作的为何我所有的领域驱动设计应用程序都如出一辙?(Why do all my DDD applications look the same?)
你可以在线阅览所有演讲。
关于此事件的 Twitter 反馈包括:
ijrussell :到家了,在 @skillsmatter 度过了美妙的一天,我认为那是迄今为止最好的一届领域驱动设计交流会 #dddx 。 :-)
jnthnwrthngtn :今年的领域驱动设计交流会 #DDDX 超赞,@carlmasak 和我已经为明年报了名!感谢 @Edument 发给我们那些很棒的资料!:)
为期一天的交流会正步入它的第 5 个年头,并且是由 SkillsMatter 在他们位于伦敦的办公室中组织的。明年的领域驱动设计交流会(DDDx)安排在2013 年06 月14 日的同一场地举办。
查看英文原文: Domain Driven Design Exchange (DDDx) 2012 - Breaking Away from Object Oriented Design(OOD) paradigm
评论