作者 | Thomas Betts
译者 | 无明
在 Explore DDD 2018 大会上,Eric Evans 做了“怀疑、乐观和实用主义”的主题演讲,他在演讲中表示,“DDD 还没有结束”。在“领域驱动设计”这本书出版十五年之后,作者对这个想法长期以来如此流行表示了惊讶之情。他强调,DDD 在这些年里并没有停滞不前,很多人都在不断创新。他还表示,要保持 DDD 不断发展,还有很多工作要做。
Evans 经常被要求对 DDD 做出定义,于是他也想知道应该如何严格定义 DDD。一个极端是“好建议”,实际上只是“看上去很美好的感伤”,另一个极端是一个微不足道的“食谱”,必须严格遵循,但对于处理更高级的概念可能变得无关紧要。Evans 认为 DDD 存在一个舒适点。当指导变得太过死板,即使是最微小的变化也像是在说“你不是在实现 DDD”,然后你就无法真正创新。为了使 DDD 保持相关性,它必须允许创新和演化。
Evans 提醒 DDD 主要指导原则的受众:要关注核心领域,在领域从业者和软件从业者的创造性合作中探索模型,并在明确有界的上下文中使用无处不在的语言。他随后从怀疑论的角度来问道:“如果我们错了呢?”如果我们没有看到 DDD 产生预期的结果,那么,作为专业人士,我们需要重新审视我们的原则。
一些团队确实在 DDD 方面取得了令人失望的结果,Evans 试图对这些结果的原因进行分类。在某些情况下,文化没有提供良好的支持,而在其他情况下,文化可能是可接受的,但团队缺乏成功的技能。有时,这只是一个运气问题,或者归结为神秘的未知原因,不值得去调查可能会产生误导的根本原因。Evans 还指出,典型 DDD 技术可能存在薄弱点或 DDD 原则可能存在缺陷。如果技术存在薄弱点,可以在不改变 DDD 基本原则的情况下解决。例如,Event Storming 是一种可以帮助开始进入协作状态的强大技术。但是,如果这些原则确实存在缺陷,我们是否能够在不完全放弃 DDD 的情况下对它们做一些修改?这是一个需要考虑的未决问题。
Evans 看到了 DDD 在过去十五年中的演化方式。事件溯源和 CQRS 等技术模式改变了我们构建软件的方式,并提出了系统不需要单个数据库的想法。书籍、博客和其他写作渠道提供了新的观点和有用的解释,扩展了 Evans 的原创思想。一个主要的区别是 DDD 社区的发展,出现了本地聚会和国际会议,包括 Explore DDD 和 DDD Europe。
微服务的增长要归功于过去几年 DDD 的重新升值。Evans 认为这是积极的,但也要小心谨慎。如果不是微服务,现在可能也不会举行 DDD 相关的大会,诸如“每个微服务就是一个有界的上下文”这样的规范性指导接近“食谱”一端,并且偏离了 DDD 的舒适点。
Evans 将大型软件系统比作社区花园。透过花园中人们共享空间的边界上下文,看着“成熟的富足”,他看到了与遗留系统的类比。花园在夏末是最有价值的,因为那时它们最多产。然而,那已经是很久以前的事了,在初春的时候,你可以很容易地改变花园。同样,软件最具延展性的阶段不是在它最多产的时候。
Evans 的最后一个观点是,推进 DDD 的秘诀在于合作。他认为技术大会将专家们聚集在一起讨论各种想法并互相学习的好机会,而不仅仅是广播和讲座。他主张 DDD 专家进行实验,并在 DDD 社区内分享这些实验和结果。引入其他领域的专家和意见同样重要,例如框架和编程语言的作者。他总结道,“DDD 在过去的十五年里已几经重组。我认为现在是进行另一次重大重组的时候了”。
英文原文
https://www.infoq.com/news/2018/09/ddd-not-done