写点什么

利用事件简化系统架构

  • 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:544385
用户头像
臧秀涛 略懂技术的运营同学。

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

关注

评论

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

9个GaussDB常用的对象语句

华为云开发者联盟

数据库 后端 华为云 企业号十月 PK 榜

想开发DAYU200,我教你

华为云开发者联盟

开发 华为云 开发板 企业号十月 PK 榜 富设备

web前端培训有哪些比较好?

小谷哥

React-hooks+TypeScript最佳实战

xiaofeng

React

【LeetCode】验证栈序列Java题解

Albert

算法 LeetCode 11月月更

React中常见的TypeScript定义实战

xiaofeng

React

前端培训机构学习比较好的方法

小谷哥

Vue3知识点之数据侦测

yyds2026

Vue

分享10个降低PCB成本的技巧!可收藏

华秋PCB

PCB PCB打样 PCB设计

从延迟处理讲起,JavaScript 也能惰性编程?

掘金安东尼

前端 11月月更

【云服务器】云服务器哪家好用便宜服务好?

行云管家

云计算 企业上云 云服务器 行云管家

Vue3, setup语法糖、Composition API全方位解读

yyds2026

Vue

那些年面挂的js手写题

helloworld1024fd

JavaScript

热备与冷备分别是什么意思?怎么通俗理解?

行云管家

高可用 热备 冷备

前端线下培训和线上培训学习哪个更好?

小谷哥

Wallys/industrial wifi6 router/Support OpenWRT /2×2 2.4G&5G

Cindy-wallys

深入浅出文件系统新形态

焱融科技

云计算 高性能 文件存储

Vue3必会技巧-自定义Hooks

yyds2026

Vue

React-diff原理及应用

xiaofeng

React

大数据培训自学怎么样?

小谷哥

从算力突破到应用全面开花,英特尔与阿里云那些不可不提的合作

科技之家

可观测实践|如何利用 Prometheus 精细化观测云产品

阿里巴巴云原生

阿里云 云原生 Prometheus

从零开始实现一个Promise

helloworld1024fd

JavaScript

React生命周期深度完全解读

夏天的味道123

React

React源码中的dom-diff

夏天的味道123

React

React核心技术浅析

夏天的味道123

React

Webpack中的高级特性

Geek_02d948

webpack

现在加入写作社区,惊喜等你开启!

InfoQ写作社区官方

热门活动

为何大企业都纷纷选择低代码做数字化转型?

优秀

数字化 低代码开发

java程序员培训和自学的区别

小谷哥

Sprint产品待办列表的优先级要怎么排?

敏捷开发

项目管理 敏捷开发

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