写点什么

利用事件简化系统架构

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

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

关注

评论

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

架构师训练营第7周作业

叶鹏

简述 CAP 原理

叶鹏

18 张图,一文了解 8 种常见的数据结构

沉默王二

Java 数据结构

架构师第1课作业及学习总结

小诗

Spring 5 中文解析数据存储篇-编程式事物管理

青年IT男

Spring5

用户密码验证函数

叶鹏

架构师训练营第八周作业

叶鹏

高难度对话读书笔记—情绪篇

wo是一棵草

实战中学习浏览器工作原理 — 排版与渲染

三钻

CSS 大前端 浏览器

架构师训练营12周作业

叶鹏

架构师训练营第四周作业

叶鹏

oeasy 教您玩转linux 010304 图形界面 xfce

o

从零开始搭建完整的电影全栈系统(五)——WEB网站、Api以及爬虫的部署

刘强西

爬虫 网站搭建 部署与维护

被我玩坏的git:除了之前的工作、当网盘用,还能这么玩

小Q

Java git 程序员 架构 开发

小白理财先转变思维理念

boshi

理财 收入 财富自由

关于Java调用类的main方法

谷鱼

Java 包位置

坚持新媒体写作第21天了,聊聊我为什么喜欢写作

老胡爱分享

学习 写作 习惯养成 坚持 随笔杂谈 讨论写作

Python 中 \x00 和空字符串的区别,以及在 Django 中的坑

AlwaysBeta

Python django 编程

简述JVM垃圾回收

叶鹏

微服务的框架(Dubbo)架构

叶鹏

一个草根的日常杂碎(9月21日)

刘新吾

生活 现实纪录 随笔

ECMAScript 6新特性简介

程序那些事

nodejs ES6 ECMAScript 6

一文学懂递归和动态规划!

小齐本齐

算法 数据结构和算法

两天,我把分布式事务搞完了

yes

分布式事务 seata

anyRTC云端录制功能上线

anyRTC开发者

WebRTC 语音 直播 RTC 安卓

食堂卡就餐卡系统

叶鹏

常用设计模式

叶鹏

前端如何优雅处理类数组对象?

Geek_z9ygea

Java 大前端

【性能优化】面试官:Java中的对象都是在堆上分配的吗?

冰河

面试 性能优化 JVM 性能调优 逃逸分析

Spring 5 中文解析数据存储篇-@Transactional使用

青年IT男

spring

Springboot 定时任务

hepingfly

定时任务 springboot 注解

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