AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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:374003
用户头像

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

关注

评论

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

拼多多商品详情数据接口应用在哪些场景?

tbapi

拼多多 拼多多商品详情接口 拼多多API接口

2023年datafun随手记(1)

Hua

大数据 AI GPT LLM

PolarDB 物理复制刷脏约束问题和解决

ba0tiao

innodb MySQL 数据库 polarDB

花见Live Wallpaper 4K Pro for mac(4k视频壁纸)

展初云

Mac 动态壁纸软件 Mac视频壁纸

3D建模软件Rhino 8 for Mac(犀牛)

展初云

Mac 建模软件 Rhino 8 犀牛

硬盘监测和系统优化工具推荐Sensei 注册激活版

胖墩儿不胖y

Mac软件 优化软件 系统清理工具

铭文聚合交易平台 Scorpio:铭文赛道狂潮的新引领者

股市老人

百度大模型安全解决方案获WitAwards 2023 年度大奖

百度安全

安全 大模型安全

全链协同,链接未来|端点科技联合IDC重磅发布新一代ERP白皮书

科技热闻

超级应用平台(HAP)起航

明道云

LED驱动控制专用电路

芯动大师

为什么chatGPT中文版不需要梯子🪜翻墙,在中国是合法合规的??

Geek_ccdd7f

Sensei for Mac(系统优化工具)

展初云

Mac Mac软件 系统优化工具

专业矢量图片转换工具 Vector Magic免激活最新

胖墩儿不胖y

Mac软件 矢量图软件

12 月 3 日北京,时序数据管理前沿技术+行业应用尽在 IoTDB 用户大会!

Apache IoTDB

SQL 通配符:用于模糊搜索和匹配的 SQL 关键技巧

小万哥

MySQL 数据库 程序员 sql 后端开发

Puppeteer是什么?如何使用Puppeteer实现浏览器自动化

爱写字的阿城

自动化 批量 puppeteer

云HIS医院信息化管理系统源码:集团化管理,多租户机制,满足医院业务需求

源码星辰

源码 Java’ 云计算,

【腾讯云云上实验室】用向量数据库——实现高效文本检索功能

熬夜磕代码、

数据库、

智能汽车的山海之盾

脑极体

智能汽车

核药供应链创新:远大医药策略与明道云实践

明道云

GPT-4 API全面开放使用

Geek_ccdd7f

一文搞懂Go gRPC服务Handler单元测试

Tony Bai

Go golang gRPC 单元测试 微服务、

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