写点什么

Eric Evans 谈领域驱动设计、微服务与边界

  • 2015-06-22
  • 本文字数:973 字

    阅读完需:约 3 分钟

在今年于伦敦举办的 DDD Exchange 大会的主题演讲中, Eric Evans 表达了他对微服务的看法。尽管微服务这个词现在已经有点炒作的味道,但Evans 相信微服务确实蕴含着巨大的价值,它为我们带来了或许是迄今为止最好的实现领域驱动设计(DDD)的环境。

对于Evans 来说,良好设计最重要的关键因素是迭代。他也相信,微服务是继SOA 之后第二次对实现正确的架构设计的尝试。这两者之间的一个主要区别在于:微服务非常强调隔离性,相比较而言,过去在尝试SOA 的过程中经常使用数据库作为集成的手段。微服务允许自治的团队各自开发不同的服务, DevOps 的发展则使服务能够独立地创建与部署,这就为我们提供了天然的边界,在开发过程中不必与其它服务纠缠在一起。他同时也相信,微服务中所用到的技术正在变得更为轻量级,并且耦合性更低。

微服务为 DDD 带来了真正的边界,而微服务社区所推崇的各种思想,例如不要共享,这正是我们希望在边界上下文中能够实现的能力。但 Evans 同时也提醒我们,如果缺乏一种高层次的设计视图和策略,那么仍有可能发生混乱的情况,大量的服务看起来就像老式的一体化、相互纠缠的系统。Evans 强调,并不是每一个大型系统的设计都是良好的,他认为微服务能够在经过良好设计的服务与设计及实现很糟糕的服务之间创建一种隔离性。

在 Evans 看来,一个微服务的操作方式恰好能够生成一个良好的边界上下文,至少这是一个良好的起点,它在服务与上下文之间建立起了某种一对一的映射。随着服务开始逐渐小型化,并以某种非常特定的方式与其它小型服务进行协作与交互,那么这个边界上下文或许能够涵盖所有这些小型服务。不过,以他的经验来说,我们经常会设计出过于庞大的边界上下文。传统的一体化服务端应用总是会成为一个单一的上下文,这会造成这个上下文过于庞大。最后,他再次重审,应由具有这方面技能的人从一个更高的层次去发现系统中的领域与上下文,这一点对于应用的开发十分重要。

下一年度的DDD Exchange 大会预定于2016 年6 月10 日举办,现已开放注册。

查看英文原文 Eric Evans on DDD, Microservices and Boundaries


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群InfoQ 好读者)。

2015-06-22 04:373777
用户头像

发布了 428 篇内容, 共 180.4 次阅读, 收获喜欢 39 次。

关注

评论

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

精彩回顾!安全智能体的前沿技术研究与实践

云起无垠

万字长文:在 Go 中如何优雅的使用 wire 依赖注入工具提高开发效率?下篇

江湖十年

golang 后端 Go web Go 面试题 面经 后端 大厂

实现智能化生产车间的MES管理系统

万界星空科技

智能制造 mes 万界星空科技 数字化车间 车间管理

Parallels Desktop 18 for mac(兼容Intel和M系列虚拟机)v18.3.2永久激活版

Rose

ERC20开发:构建标准化的代币经济

dappweb

ERC20 区块链开发

独特DJ混音创作软件DJ Mix Pads 2 - Remix Version

Rose

mac office 365 商业专业版破解

Rose

Permute 3全能媒体格式转换器 mac Permute 3中文版下载

Rose

潞晨训推一体机,画出大模型到企业的一条龙路线图

脑极体

AI

EverWeb for Mac(网页设计软件)v4.2.0中文版

Mac相关知识分享

网页设计 Mac软件 mac下载

油猴Safari浏览器辅助插件Tampermonkey 中文版下载

Rose

ERC721开发:打造独一无二的数字资产

dappweb

区块链 defi 元宇宙 ERC721 区块链开发

在鸿蒙系统中处理ETS层与C++层之间的数组传递

彭康佳

c android 鸿蒙 native

万字长文:在 Go 中如何优雅的使用 wire 依赖注入工具提高开发效率?上篇

江湖十年

golang 后端 Go web 依赖注入 Go 面试题 面经 后端 大厂

打字大师3-盲打实践Master of Typing 3 - Practice for Mac

Rose

Invisor for Mac 媒体文件信息查看软件

Rose

Autodesk AutoCAD 2025中文版详细图文安装教程

Rose

TDengine 3.3.0.0 引入图形化管理工具、复合主键等 13 项关键更新

TDengine

数据库 tdengine 时序数据库

元宇宙和链游的疯狂故事对经济有什么影响?

区块链开发团队DappNetWork

链游开发:探索游戏与区块链的交汇点

区块链开发团队DappNetWork

大模型应用之路:从提示词到通用人工智能(AGI)

京东科技开发者

中国LED显示屏产业的挑战与机遇

Dylan

产业 LED显示屏 全彩LED显示屏 led显示屏厂家 市场

实用的Web服务器管理软件goPanel for Mac v2.9.6版

Mac相关知识分享

MacBook web服务器 Mac软件 mac下载

优秀的电子书生成工具Vellum for Mac v3.7.4激活版

Rose

CloudMounter for mac(云盘本地加载工具)v4.6版

Mac相关知识分享

MacBook Mac软件 mac下载

sublime text代码编辑器 中文设置教程

Rose

Eric Evans谈领域驱动设计、微服务与边界_架构_Jan Stenberg_InfoQ精选文章