EDA优势
1.提供明确的表述性业务概念
在某些场景下,一个业务概念会被多个流程更改,如果此属性逻辑发生变化,其他关联的流程将无法知晓,导致bug产生
如:出于性能或其他因素考虑下,为A表增加一个冗余字段,操作A业务时进行计算并赋值此字段,B表与C表业务直接使用。如果之后修改此字段且需要其他关联场景都做更改,除了一个个去找使用了此字段的地方,没有其他办法更方便的知道B表还是C表使用了,或是外部系统使用了,所以很容易产生A表冗余字段变化,但其他使用的业务忘记进行相应操作,并且一个字段可能因为多种业务操作发生变化,而关联者并不知道是什么业务导致的变化,而只能一锅粥的把所有可能都写出来,导致代码难以阅读。这也是事务脚本模式的一大弊端:一处修改处处修改,一处修改处处bug
在如上情况下,如果采用EDA方式,当然也是一处修改处处修改,可最大的区别在于,EDA提供了一个非常明确的、表述性很强的业务概念
还是如上情况,当新增或修改此字段后,发布一个对应的含有业务意义概念的事件,其他所有与此字段有业务关联的都订阅此事件
如:订单发货操作可能需要进行邮件发送、数据统计、库存修改等等等等,第一种方式需要每个地方都关注具体的数据,而EDA则只关注事件,他无需在去关注数据本身,如订单,他只关心发货操作所需要的关键数据,订单号、发货时间、快递公司等少量数据,他很明确此次只针对发货业务进行对应处理
2.
EDA优势的更多相关文章
- 事件驱动架构 (Event-Driven Architecture,EDA) 简介
EDA 是一种侧重于以生成/消费为基础的异步通信的架构模式.这主要对照于传统的基于线程的同步系统. EDA 是一种以事件 (event)为核心,提供事件产生,路由,消费已经结果回调等机制的架构模式. ...
- 从立创EDA,Gratipay看中文编程开发环境和推广运营的一个趋势
前不久听说立创EDA,对比之前的讨论: 适合中文用户的编程语言和IDE, 侧重于现有语言/IDE不具备的特性 · Issue #11 · program-in-chinese/overview,觉得颇 ...
- 中央事件总线 事件驱动架构(EDA) 解析事件总线的4种实现方式
事件驱动架构(EDA)https://mp.weixin.qq.com/s/nA8XFD2Rx_7qA_LxltGGHw https://mp.weixin.qq.com/s/cD3auglgKzOb ...
- 当 EDA 遇到 Serverless,亚马逊云科技出招了
近二三十年来,软件开发领域毫无疑问是发展最为迅速的行业之一. 在上个世纪九十年代,世界上市值最高的公司大多是资源类或者重工业类的公司,例如埃克森美孚或者通用汽车,而现在市值最高的公司中,纯粹的软件公司 ...
- 06.移动先行之谁主沉浮----我的代码我来写(Xaml的优势)
如果移动方向有任何问题请参考===> 异常处理汇总-移动系列(点) 前面几节课,我们都是在前台创建对象,进行一些设置,那么我们为什么不用传统的方法来编程呢? 我们今天来试试你就明了了~~ 打开M ...
- 女生学Web前端优势往往很明显
学Web前端的女生不算少数,女生学习的成果也往往不比男生差,前端偏向设计.交互和产品方向,需要更加贴合用户,女生心思细腻,对页面细节把控更好,更具美感,对用户心理把握更准,这样的优势往往是男生所不具备 ...
- SQL Server 2016五大优势挖掘企业用户数据价值
SQL Server 2016五大优势挖掘企业用户数据价值 转载自:http://soft.zdnet.com.cn/software_zone/2016/0318/3074442.shtml 3月1 ...
- CYQ.Data V5 从入门到放弃ORM系列:框架的优势
前言: 框架开源后,学习使用的人越来越多了,所以我也更加积极的用代码回应了. 在框架完成了:数据库读写分离功能 和 分布式缓存功能 后: 经过三天三夜的不眠不休,终于完成框架第三个重量级的功能:自动化 ...
- IDDD 实现领域驱动设计-CQRS(命令查询职责分离)和 EDA(事件驱动架构)
上一篇:<IDDD 实现领域驱动设计-SOA.REST 和六边形架构> 阅读目录: CQRS-命令查询职责分离 EDA-事件驱动架构 Domin Event-领域事件 Long-Runni ...
随机推荐
- Ubuntu18.10下安装Qt5.12过程记录
首先你得先安装Ubuntu操作系统(我是在VMWare14中安装的Ubuntu18.10版本). 阿里镜像:https://opsx.alibaba.com/mirror 我这里下载的文件为:ubun ...
- mysql5.7 启动报发生系统错误2
1. http://dev.mysql.com/downloads/mysql/ 下载mysql5.7 zip包 2. 下载好后解压文件,解压的内容如图,您可以把内容解压到想要的位置 ...
- python中,如何将两个变量值进行拼接
说明: 字符串和字符串之间可以拼接,那么变量和变量之间如何进行拼接,在此记录下. 操作过程: 1.通过加号 + 操作符,将两个变量拼接在一起 >>> prefix = 'p' > ...
- c#直接调用ssis包实现Sql Server的数据导入功能
调用ssis包实现Sql Server的数据导入功能网上已经有很多人讨论过,自己参考后也动手实现了一下,上一次笔者的项目中还用了一下这个功能.思前想后,决定还是贴一下增强记忆,高手请54. 1.直接调 ...
- 基于NDK的Android防破解& Android防破解 【转载】
两篇防破解文章转载 基于NDK的Android防破解:http://blog.csdn.net/bugrunner/article/details/8634585 Android防破解:http:// ...
- (翻译)2016美国数学建模MCM F题(政策)翻译:难民移民政策建模
PROBLEM F:Modeling Refugee Immigration Policies With hundreds of thousands of refugees moving across ...
- Dubbo -- 系统学习 笔记 -- 入门
Dubbo -- 系统学习 笔记 -- 目录 入门 背景 需求 架构 用法 入门 背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行, ...
- 服务端测试之接口测试工具——postman
今天跟大家分享一个非常常见大家也非常熟悉的测试工具——postman. 1.安装postman postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件.打开chrome浏览器, ...
- linux修改文件所属用户和用户组
使用chown命令可以修改文件或目录所属的用户: 命令:chown 用户 目录或文件名 例如:chown testAdmin /home/work (把home目录下的xua ...
- PHP代码审计笔记--文件包含漏洞
有限制的本地文件包含: <?php include($_GET['file'].".php"); ?> %00截断: ?file=C://Windows//win.in ...