在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在过去的十五年里已几经重组。我认为现在是进行另一次重大重组的时候了”。
领取专属 10元无门槛券
私享最新 技术干货