Eric Evans最近在伦敦举办的 DDD eXchange大会 上做了一次 主题演讲 。他在演讲中指出,过去的几年中,对 领域驱动设计 (DDD)的兴趣有所增加。他认为,我们正处在一个开发人员更关注设计的时代,部分原因是因为我们更多的工作在分布式系统上,而其中的模型具有较高的价值。
Evans认为,DDD仍然有意思的其中一个原因是,因为我们质疑它潜在的假设,并取得了一些不错的结果。挑战它的一种方法是问如下这样的问题:
DDD的原则依赖我们以一定的方式考虑模型。但是以Evans的经验,人们往往将领域模型简化为UML图。虽然数据结构是一个重要方面,但这不是他用模型来参照的东西;各种动态方面也是重要的。完整性或现实的描述不是目的;一个模型应该有一个小范围的关注点,并在一些特定的方法上是有用的。他用 Mercator投影 来作比较:Mercator投影是专为航海而创造的世界模型,但对于其他目的并不是特别有用。
经常,Evans发现,人们试图创造一个如此优雅的模型使得一步就可以到达那里的时候,他们就会卡住。相反,他认为,我们应当交付那些一开始并不那么好的模型,并开始使用它们。然后,我们可以学习并创造越来越好的模型,直到最终发现那个可以引以为豪的模型。
Evans强调我们不应该局限于模型看起来的样子。他对模型的观点包括许多不同的模型范式:
Evans认为DDD有助于我们创新的一个例子是 事件溯源 。它是领域建模的一种不同风格,也是建模思想从关注数据结构的变化到所发生事情的转变。在一定的领域里,与已经发生事情的相关离散事件可能是非常有价值的。
Evans提到的另一个例子是 事件风暴 ,这种技术在近年来已经产生一些影响。它是以发生在领域上下文中的事件开始,并寻找作为基础元素的事件。他认为事件风暴和事件溯源这两种技术都可以和事件一起工作,当一起使用的时候可能会产生积极的影响。
明年的DDD Exchange 定于2017年4月下旬,大会的注册已经开始。
查看英文原文: Eric Evans: Is Domain-Driven Design Beneficial for Software Development?
感谢张龙对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号: InfoQChina )关注我们。