写点什么

利用事件简化系统架构

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

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

关注

评论

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

探讨 JS 对象如何缓存属性的值

零维

JavaScript 大前端 设计模式

关于软件IT专业大学生对专业认知情况的调查问卷

花花

签约计划

AI数学基础之:P、NP、NPC问题

程序那些事

人工智能 AI 程序那些事

索引的正确“打开姿势”

华为云开发者联盟

数据库 索引 B-tree Psort 分区

浪潮×积成电子:尝到了工业互联网的“甜头”

云计算

anyRTC 智能硬件解决方案

anyRTC开发者

音视频 WebRTC IoT 智能硬件

10行C++代码实现高性能HTTP服务

万俊峰Kevin

c c++ workflow Open Source

大学生读书情况调研

hepingfly【gzh:和平本记】

读书 调研 大学生 阅读

可能有点长的Spring MVC入门篇

北游学Java

Java spring ssm Spring MVC

别让心里的墙,挡住了你未来的路

小天同学

思考 认知提升 认知 4月日更

图算法系列之深度优先搜索(二)

Silently9527

深度优先搜索 数据结构和算法 图算法

水性硅胶防滑透明浆

C13713145387

Windows系统下电脑强制卡死、关机的邪恶方法

不脱发的程序猿

程序人生 技术人 4月日更 系统关机 计算机小技巧

如何基于 PANO SDK 实现 iOS 端屏幕共享互动

拍乐云Pano

ios sdk

圆梦阿里之后,我收集整理了这份“2021春招常见面试真题汇总”

比伯

Java 编程 架构 程序人生 计算机

云上细粒度访问管理的参考架构

张晓辉

云原生 网关 访问控制 OPA

Rust从0到1-代码组织-use关键字

rust 代码组织 use

LeetCode题解:151. 翻转字符串里的单词,数组,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

面向软件 IT 专业的高校大学生就业与专业关联性的问卷调查

谙忆

华为云FusionInsight MRS:千余节点滚动升级业务无中断

华为云开发者联盟

大数据 数据湖 节点 集群 华为云FusionInsight MRS

智能小车系列-树莓派初次使用环境配置

波叽波叽啵😮一口盐汽水喷死你

树莓派 wifi SSH 无显示器 树莓派首次配置

容器&服务:metrics-server探索

程序员架构进阶

k8s 28天写作 弹性扩容 4月日更 metrics server

你的开发好帮手:下一代云原生开发工具技术

华为云开发者联盟

云原生 编码 开发工具 代码补全 调测

从UCloud优刻得2020年全年财报,看云计算公司发展之路

15个问题告诉你如何使用Java泛型

华为云开发者联盟

Java 接口 参数 Java泛型 泛型对象

面向软件 IT 专业的高校大学生职业思考调查问卷

程序员架构进阶

职业规划 调查报告 就业 28天写作 4月日更

重装变态的微信

箭上有毒

生活记录 4月日更

云图说|读请求太多怎么办?一键读写分离来帮忙

华为云开发者联盟

MySQL 读写分离 云数据库 云数据库MySQL

安全知识

笑春风

美的蒸烤料理炉全新上线华为商城,首款搭载鸿蒙系统的设备有何不同?

科技汇

持续交付实战

云飞扬

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