写点什么

利用事件简化系统架构

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

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

关注

评论

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

LeetCode题解:897. 递增顺序搜索树,递归,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

架构实战营 - 模块七作业

思梦乐

Vue进阶(九十六):VuePress 详解

No Silver Bullet

Vue 9月日更

微信PaxosStore:深入浅出Paxos算法协议

OpenIM

华云大咖说 | 业务转型中的IT云化服务——安超云基座方案介绍

华云数据

NDK的C++ 库支持

Changing Lin

9月日更

模块二作业

bin

自己动手写个微型博客吧,还能实现网页版 Blink,No.1

梦想橡皮擦

9月日更

PostgreSQL插件之TimescaleDB

华为云数据库小助手

postgresql 插件 GaussDB 华为云数据库

携手强化「内容审核」能力,融云与数美科技达成战略合作

融云 RongCloud

音视频 内容安全 融云 即时通讯IM

转型 Golang 开发的心路历程

baiyutang

php 云原生 求职 Go 语言 9月日更

【Flutter 专题】55 日常问题小结 (二)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9月日更

50亿海量数据如何高效存储和分析? GaussDB (for Cassandra) 3个秘诀搞定

华为云开发者联盟

存储 华为云 海量数据 分析 GaussDB (for Cassandra)

合规安全大考核:移动应用安全策略全盘点

蚂蚁集团移动开发平台 mPaaS

RPC 移动开发 mPaaS 隐私安全 加固

阿里一面 五问 @Transactional

skow

Java Spring Boot 后端

书单 | 做数字化转型,离不开这10本书!

博文视点Broadview

学校疫苗中心管理应用搭建心得

明道云

Go- 文件读写-1

HelloBug

文件读写 Go 语言

netty系列之:搭建HTTP上传文件服务器

程序那些事

Java Netty HTTP 文件服务器 程序那些事

解读顶会CIKM'21 Historical Inertia论文

华为云开发者联盟

华为云 论文 长序列时间 时间序列预测 CIKM’21

杀疯了,编程语言还能卷成这样❓❗【话题讨论】

InfoQ写作社区官方

话题讨论 话题

别问了,我真的不喜欢这个注解!

why技术

Java

Node.js 应用全链路追踪技术——[全链路信息获取]

vivo互联网技术

node.js 大前端 编程语言 全链路追踪 语言 & 开发

ReScript 与 TypeScript,谁是前端圈的“当红辣子鸡”

华为云开发者联盟

Java JavaScript typescript 大前端 ReScript

揭秘盒马鲜生 Android 短视频秒播优化方案

阿里云CloudImagine

android 音视频 短视频 Video播放器 移动端

模块七

SAKIN

【VueRouter 源码学习】第四篇 - 创建路由映射表

Brave

源码 vue-router 9月日更

模块二

树建

架构实战营

当视频恋爱 App 用上了 Serverless

Serverless Devs

Serverless 云原生

直播预告|如何通过“智能边缘安全”提升企业免疫力?

京东科技开发者

https 云安全 CDN加速 网站反爬 网站建设

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