AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

利用事件简化系统架构

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

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

关注

评论

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

CloudQuery v1.3.5 上线!

BinTools图尔兹

数据库 oracle 运维 开发工具 dba

maven打包,常用启动方式

秋天

mavne

后端服务器网络编程之 IO 模型

Linux服务器开发

后端 网络编程 web服务器 Linux服务器开发 网络io

单线程、多线程和协程的爬虫性能对比

小小明

Python 爬虫

支付宝高级研发一二三面题目:CMS+CAS+线程锁+事务+雪崩+Docker

钟奕礼

Java 编程 程序员 架构 面试

高并发下的Redis分布式锁

java_wxid

Java redis 高并发 分布式锁 setnx

将word试卷匹配转换为结构化表格

小小明

Python word

用户需求差异化需要更专业的云管理平台 | 演讲实录

BoCloud博云

云计算 多云管理

MySQL四大属性(特性) 底层实现原理

java_wxid

Java MySQL 数据库 面试 底层实现原理

AI技术在小程序生态质量保障方向的落地实践

百度开发者中心

百度智能小程序

iOS 面试策略之简历的准备到面试流程

iOSer

ios 面试

程序员:如何写出斗帝级简历?

Java架构师迁哥

又是一些小细节!3面成功入职字节跳动:算法+数据库+中间件+JVM

Java架构之路

Java 程序员 架构 面试 编程语言

Apache Iceberg学习日志

InfoQ_Springup

数据湖

Python实现excel公式格式化工具

小小明

Python Excel

试着找一下抖音下单的用户路径地图

小匚

产品经理 产品经理训练营

何止一个惨字形容!水滴Java面试一轮游,壮烈了,问啥啥不会,数据库血崩,我该怎么办?

钟奕礼

Java 学习 编程 程序员 面试

硬件测试的思考和改进:有道词典笔的高效测试探索

有道技术团队

大前端

Hello World !!!

潮湿了我押韵的心情

批量从Word中提取图片

小小明

Python

MySQL锁等待与死锁问题分析

Simon

MySQL 死锁

美团3面(Java后台):NIO+BIO+Zookeeper+线程池+Redis+kafka

钟奕礼

Java 编程 程序员 架构 面试

Flink程序优化及反压机制

大数据技术指南

flink 3月日更

Pandas实战案例-冷空气活动寒潮级别分类

小小明

KeyChrone-K8使用体验

ITCamel

重点人员可视化研判分析系统搭建,可视化大屏系统

HashMap加载因子为什么是0.75?

java_wxid

Java 面试 hashmap HashMap底层原理 加载因子

JVM 诊断之 jps 工具使用

hepingfly

JVM jvm调优 jvm诊断 jps

字节跳动5面喜提offer!分享给朋友们面试感受

Java架构之路

Java 程序员 架构 面试 编程语言

爆肝一周总结了一份Java学习/面试自测指南!200+道Java最常见面试题。

Java架构之路

Java 程序员 架构 面试 编程语言

2021版金三银四Java面试突击手册开源(涵盖p5-p8技术栈),“吊打”面试官的“葵花宝典”

Java 编程 程序员 架构 面试

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