写点什么

利用事件简化系统架构

  • 2013-05-02
  • 本文字数:636 字

    阅读完需:约 2 分钟

在小型业务组件之间使用事件进行交互可以简化系统架构,上周 Russ Miles 在探讨“通过事件简化架构( Architectural Simplicity through Events )”时谈到了这一点。

简洁真的非常重要 Barbara Liskov QCon London 2013 的主题演讲中这样说。资深顾问 Russ Miles 对此深表赞同。他的经验是,团队的开发速度经常因所编写代码体积和复杂性的增长而放缓。他认为简化架构是帮助团队保持开发势头并加快开发过程的最佳方式。

对 Russ 而言,组件结构在简化架构方面非常重要。将组件放置在传统的分层模型中往往会把事情弄得一团糟。因此他创建了 Life-Preserver 模型(形成了一个环),所有的基础设施软件都在环上处理集成,而核心业务组件在环内加入业务价值。他指出该模式与 Alistair Cockburn 创建的六边形架构( Hexagonal Architecture )风格非常相似。

事件

下一步是定义组件如何彼此合作。因为我们很可能并不是一开始就知道所有交互,因此可以通过发送事件保持系统的灵活性。组件要遵守的唯一契约是事件的接收与广播,这为我们带来了一个标准的事件驱动架构,不过该架构是组件级的。

管道与过滤器

再进一步,Russ 几乎将组件缩减成了函数,从强类型事件变为简单的数据,比如,以文档或XML 的形式,使核心通信方式与集成组件和外部事件之间的通信方式相同。这一步使架构变为了在小型组件之间分享不可变数据,而每个组件就是负责对数据做某种处理并返回数据,这就是管道与过滤器模式,不过是在系统架构内部而已。

查看英文原文: Events bring Simplicity to a System’s Architecture

2013-05-02 08:544056
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 136.6 次阅读, 收获喜欢 35 次。

关注

评论

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

2021年阿里高频Java面试题:分布式+中间件

爱好编程进阶

Java 程序员 后端开发

Bigdata 作业第九周

Pyel

函数计算 HTTP 触发器支持异步,解放双手搭建 Web 服务

阿里巴巴云原生

阿里云 云原生 函数计算

[Python] 题集 ②

謓泽

5月月更

跨境电商中的秘密

Geek_e369a5

跨境电商 编程解决 跨境电商快速更新产品 多图AI融合 图片背景替换

1024属于程序员的专属浪漫

爱好编程进阶

Java 程序员 后端开发

3 个方法,教你提升程序员的自我价值

爱好编程进阶

Java 程序员 后端开发

OpenYurt 开源之夏开始申请啦

阿里巴巴云原生

阿里云 云原生 开源之夏

网站开发进阶(四十五)浅谈XML与HTML的区别

No Silver Bullet

html xml 5月月更

【校招/社招】面试字节,写了一份硬核简历!

小傅哥

Java 面试 小傅哥 招聘 简历

11-SpringSecurity:Session共享

爱好编程进阶

Java 程序员 后端开发

docker可视化管理工具之shipyard

乌龟哥哥

5月月更

C语言_数组的查找、替换、排序、拼接

DS小龙哥

5月月更

2020java面试题-chukou-chengzhang

爱好编程进阶

Java 程序员 后端开发

某小视频App v10.x 手机号加密算法分析

奋飞安全

android 移动安全

10个 解放双手的 IDEA 插件,少些冤枉代码

爱好编程进阶

Java 程序员 后端开发

算力免费,还奖钱,OpenI日常激励活动“我为开源打榜狂”来袭

OpenI启智社区

开源 我为开源打榜狂

Flink CDC Meetup · Online,5.21 开讲!

Apache Flink

大数据 flink 编程 流计算 实时计算

【ICDE 2022】稀疏模型训练框架HybridBackend,单位成本下训练吞吐提升至5倍

阿里云大数据AI技术

深度学习 推荐系统 开源项目

网站开发进阶(四十九)由JS报“未结束的字符串常量”引发的思考

No Silver Bullet

作用域 5月月更 解析引擎

面试突击46:公平锁和非公平锁有什么区别?

王磊

Java 面试 java常见面试题

六大应用场景解决方案重磅发布,华为开发者联盟助力开发者商业成功

最新动态

与众不同的企业,都有最棒的知识管理!

小炮

知识管理

2022年开发者时间报告

Geek_rze78a

2个月成功逆袭!最新分享阿里(Java岗

爱好编程进阶

Java 程序员 后端开发

从这些云原生企业身上,我看到了数字化创新者该有的样子

阿里巴巴云原生

阿里云 云原生 实战案例

kubernetes下的Nginx加Tomcat三部曲之一:极速体验

程序员欣宸

Java tomcat Kubernetes 5月月更

cdn日志文件导入mysql进行分析,核心用到 Python

梦想橡皮擦

5月月更

【刷题第三天】无重复字符的最长字串

白日梦

5月月更

java内存模型之双重检查锁定与线程安全的延迟初始化

急需上岸的小谢

5月月更

SAP GUI 一些实用技巧分享

汪子熙

router 客户端 SAP GUI 5月月更

利用事件简化系统架构_架构_Jan Stenberg_InfoQ精选文章