BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Eric Evans:领域驱动设计有利于软件开发吗?

| 作者 Jan Stenberg 关注 29 他的粉丝 ,译者 禚娴静 关注 0 他的粉丝 发布于 2016年6月21日. 估计阅读时间: 4 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

Eric Evans最近在伦敦举办的DDD eXchange大会上做了一次主题演讲。他在演讲中指出,过去的几年中,对领域驱动设计(DDD)的兴趣有所增加。他认为,我们正处在一个开发人员更关注设计的时代,部分原因是因为我们更多的工作在分布式系统上,而其中的模型具有较高的价值。

Evans认为,DDD仍然有意思的其中一个原因是,因为我们质疑它潜在的假设,并取得了一些不错的结果。挑战它的一种方法是问如下这样的问题:

  • DDD是否有助于我们以某种定义的方式更快或者更好地交付软件?
  • DDD是否有助于我们适应?我们可以将同样的原则应用在过去10年已经发生根本变化的IT世界吗?
  • 那些DDD原则是否有助于我们创新?我们现在做软件设计比以前好了,是因为现在这些原则帮助我们找到新的做事方式了?

DDD的原则依赖我们以一定的方式考虑模型。但是以Evans的经验,人们往往将领域模型简化为UML图。虽然数据结构是一个重要方面,但这不是他用模型来参照的东西;各种动态方面也是重要的。完整性或现实的描述不是目的;一个模型应该有一个小范围的关注点,并在一些特定的方法上是有用的。他用Mercator投影来作比较:Mercator投影是专为航海而创造的世界模型,但对于其他目的并不是特别有用。

经常,Evans发现,人们试图创造一个如此优雅的模型使得一步就可以到达那里的时候,他们就会卡住。相反,他认为,我们应当交付那些一开始并不那么好的模型,并开始使用它们。然后,我们可以学习并创造越来越好的模型,直到最终发现那个可以引以为豪的模型。

Evans强调我们不应该局限于模型看起来的样子。他对模型的观点包括许多不同的模型范式:

  • 关注于事物的面向对象会反过来带出行为。这是Evans写他的关于DDD一书时的主要技术。
  • 事件溯源,其中事件发生的顺序成为中心而事物都是次要的。它有许多优点也有一些缺点。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)关注我们。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT