QCon 全球软件开发大会(北京站)门票 9 折倒计时 4 天,点击立减 ¥880 了解详情
写点什么

Eric Evans 说 DDD 还未结束

2018 年 9 月 19 日

在 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 在过去的十五年里已几经重组。我认为现在是进行另一次重大重组的时候了”。

查看英文原文: Eric Evans Says DDD Isn’t Done

2018 年 9 月 19 日 04:18617
用户头像

发布了 731 篇内容, 共 370.2 次阅读, 收获喜欢 1865 次。

关注

评论

发布
暂无评论
发现更多内容

区块链将这样影响你的生产生活

CECBC区块链专委会

区块链 信息发展

研发和测试在多国陆续展开 全球央行数字货币研发驶入快车道

CECBC区块链专委会

数字货币 金融

架构师训练营第一期-第四周学习总结

卖猪肉的大叔

极客大学架构师训练营

京东区块链之供应链应用篇:溯源应用结合区块链能碰撞出什么火花?

京东科技开发者

区块链 供应链

Flink处理函数-6-4

小知识点

scala 大数据 flink

架构师训练营第四周作业

Shunyi

极客大学架构师训练营

架构师训练营第四周课后练习

薛凯

架构师训练营第一周课后练习

薛凯

架构师训练营第一周总结

薛凯

spring-boot-route(十七)使用aop记录操作日志

Java旅途

Spring Boot aop

LeetCode题解:22. 括号生成,递归先生成再过滤,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

通证、通证经济与区块链

CECBC区块链专委会

区块链 通证经济

架构师训练营第一期-第四周课后作业

卖猪肉的大叔

极客大学架构师训练营

有符号类型引发的奇怪现象

jiangling500

如何设计一个牛逼的API接口

Java旅途

Spring Boot API

数据库技术丨GaussDB(DWS)数据同步状态查看方法

华为云开发者社区

数据库 高可用

Java 中的反射是什么

Rayjun

Java 反射

Go 语言内存管理三部曲(二)解密栈内存管理

网管

go 栈 堆栈 内存管理 内存布局

架构师训练营第三周课后练习

薛凯

架构师训练营第三周总结

薛凯

从格力直播看品牌商的渠道变革

boshi

数字化转型 品牌 直播带货 优化业务

架构师训练营第四周总结

薛凯

《Linux学习笔记》从常用命令、常用操作到网络管理、性能优化

Java架构之路

Java Linux 程序员 面试 编程语言

架构师训练营 1 期 - 第四周 - 系统架构

三板斧

极客大学架构师训练营

阿里云服务器搭建

时间是一个人最好的证明

阿里云 服务器 域名

ARTS Week13

丽子

全面到哭!BAT内部Java求职面试宝典,必须人手一份!

Java成神之路

Java 阿里巴巴 程序员 面试 编程语言

第四周学习代码系统架构总结

三板斧

5张表的sql整懵阿里p7:你们能看明白自己写的啥吗?

小Q

MySQL 数据库 学习 调优 mycat

第四周作业

icydolphin

极客大学架构师训练营

2020.10.05-2020.10.11 学习总结

icydolphin

极客大学架构师训练营

边缘计算隔离技术的挑战与实践

边缘计算隔离技术的挑战与实践

Eric Evans说DDD还未结束-InfoQ