写点什么

利用事件简化系统架构

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

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

关注

评论

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

Matlab常用图像处理命令108例(二)

timerring

图像处理

28岁小公司程序员,无车无房不敢结婚,要不要转行?

程序员晚枫

程序员 收入

极氪汽车 APP 系统云原生架构转型实践

阿里巴巴中间件

阿里云 云原生

在前端领域摸爬滚打7年,我终于掌握了这些沉淀技巧

小鑫同学

Portraiture2023人像免费磨皮插件

茶色酒

Portraiture2023

阿里云消息队列 Kafka 生态集成的实践与探索

阿里巴巴中间件

kafka 阿里云 云原生 消息队列

架构训练营-模块9秒杀系统

张Dave

JavaScript异步编程的深入理解,使用回调函数实现异步编程

兴科Sinco

JavaScript 前端 前端开发 异步编程

强强联合:Neovim+ChatGPT | 社区征文

SkyFire

ChatGPT neovim

订单超时怎么处理?我们用这种方案

阿里巴巴中间件

阿里云 云原生

LeSS敏捷框架高效生产力实践

俞凡

敏捷开发 大厂实践

浅谈kafka

京东科技开发者

数据库 中间件 京东云 kafka manager 企业号 3 月 PK 榜

Kubernetes容器状态探测的艺术

俞凡

Kubernetes 云原生

初识大热的ChatGPT的几点思考|社区征文

穿过生命散发芬芳

ChatGPT

前端学习

阡陌r

巧用GenericObjectPool创建自定义对象池

京东科技开发者

京东云 API 编排 对象池 京东物流 企业号 3 月 PK 榜

架构实战 8 - 消息队列MySql表格设计

架构实战营 「架构实战营」

一天吃透Git面试八股文

程序员大彬

git 面试

使用OpenAI接口释放ChatGPT API 的力量

devpoint

React nextjs ChatGPT

将老人拉出无声的世界,AI是怎么做的?

脑极体

AI医疗

国内AGV调度系统到底是什么水平?

申扬科技

调度系统 AGV

FL Studio21中文语言版水果编曲工具

茶色酒

FL Studio21

工作一年,我重新理解了《重构》

阿里巴巴中间件

阿里云 云原生 重构

经验分享:高德地图如何短时间快速完成春节出行备战工作?

阿里巴巴中间件

阿里云 云原生 函数计算

统一观测丨使用 Prometheus 监控 E-MapReduce,我们该关注哪些指标?

阿里巴巴中间件

阿里云 云原生

Orika JavaBean映射工具使用

京东科技开发者

JAVA开发 京东云 JavaBean 企业号 3 月 PK 榜

大型供应链物流企业的数字化转型方法论

明道云

如何设计一个优秀的 Go Web 项目目录结构

江湖十年

Go 设计 后端 项目 Web Service

从混乱到完备:我的研发流程之路

SkyFire

研发流程

AutoCompleteTextView的基本使用

芯动大师

android 控件 AutoCompleteTextView

前端学习路径

阡陌r

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