写点什么

解读 5 种软件架构模式

  • 2022-02-07
  • 本文字数:1261 字

    阅读完需:约 4 分钟

解读 5 种软件架构模式

当一些人开始涉足软件工程领域,总有一天他会需要学习软件架构模式的基本知识。在我第一次接触编程的时候,我并不知道如何才能了解到现有的架构模型,这样就不会过于详尽,也不会让人感到混乱,而是非常抽象和简单的理解。


在我发现 Mark RichardsSoftware Architecture Patterns(《软件架构模式》,暂无中译本)一书之前,这个问题就一直存在。在此,我将与你分享这本书的最重要部分和架构模式。(要了解更多信息,我强烈建议你阅读这本书或他的报告

为什么作为软件工程师,至少要学习基本的架构模式?


我肯定有许多文章可以解答这个问题,但是我会告诉你一些原因。首先,如果你了解架构模式,你将更容易遵循架构师的要求。其次,理解这些模式可以帮助你在代码中作出决策:比如,如果你的应用设计是基于事件驱动的微服务,作为一名软件工程师,如果你注意到现有服务中逻辑的复杂性和责任的增加,你就必须把你的代码解耦到一个单独的服务中。(不懂的话,就跟着文中的内容走,这种模式在本文中已经做了一个简要的说明。)


Mark Richards 在他著的书中,描述了 5 种模式:


  • 分层架构

  • 驱动架构

  • 微内核架构(或插件架构)

  • 微服务架构

  • 基于空间的架构(或云架构模式)

1. 分层架构


它是单体应用最常见的架构。该模式的基本思想是将应用程序的逻辑划分为若干层,每层都封装了特定的角色。例如,持久层将负责应用程序与数据库引擎之间的通信。


图 1:分层架构模式

2. 事件驱动架构


这种模式背后的思想是将应用逻辑解耦为单一用途的事件处理组件,以异步方式接收和处理事件。这是一种广受欢迎的分布式异步架构模型,它以高可扩展性和适应性而闻名。


图 2:事件驱动架构代理拓扑

3. 微内核架构


微内核架构,也被称为插件架构,这种设计模式包含两大部分:核心系统插件模块(或扩展)。Web 浏览器就是一个很好的例子,它相当于核心系统,可以让你无限地安装扩展(或者插件)。


图 3:微内核架构

4. 微服务架构


微服务架构由单独部署的服务组成,每个服务最好都有一个单一的责任。这些服务彼此之间是相互独立的,当其中一个服务出现故障时,其他服务不会因此中断。


图 4:微服务架构

5. 基于空间的架构


基于空间的模式背后的主要思想是分布式共享内存,以缓解经常发生在数据库层面的问题。它的假设是,通过使用内存数据处理大部分操作,这样我们就可以避免在数据库中进行额外的操作,从而避免未来可能由此产生的任何问题(例如,如果你的用户活动数据实体发生了变化,你不需要改变一堆代码来持久化和从数据库中检索这些数据)


基本的方法是将应用程序分离成处理单元(可以根据需求自动扩大和缩小),数据将在这些单元之间进行复制和处理,无需持久化到中央数据库(虽然当系统发生故障时,也会有本地存储)。


图 5:基于空间的架构


你可以在我的 GitHub 账户中找到其中一些架构模式的最简单例子。以下是链接:



作者介绍:


Orkhan Huseynli,软件工程师。


原文链接:


https://orkhanscience.medium.com/software-architecture-patterns-5-mins-read-e9e3c8eb47d2

2022-02-07 10:165538

评论

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

APP弱网测试完整攻略【国庆出游特辑版】

优测云服务平台

弱网测试

乐蜂直播购物商城小程序介绍

微擎应用市场

Databend 亮相 RustChinaConf 2025,分享基于 Rust 构建商业化数仓平台的探索

Databend

非凸智能算法上线华福证券,打造高效交易新范式

非凸科技

国产化浪潮中的稳妥之选:从 VMware 迁移到全栈自研云易捷超融合

智驱前线

迈旗招聘相关系统介绍

微擎应用市场

打破能源认知盲区:MyEMS 开源系统如何重构管理范式、创造可持续价值

开源能源管理系统

开源 能源管理系统

火山引擎 veCLI 发布,开启智能开发新模式

火山引擎开发者社区

火山引擎

App 加载慢到崩溃?三招帮你彻底告别 “转圈圈”!

xuyinyin

企业级实时消息推送系统的架构设计,一文即懂!

JackJiang

网络编程 即时通讯 IM

不重启、不重写、不停机:SLS 软删除如何实现真正的“无感数据急救”?

阿里巴巴云原生

阿里云 云原生 sls

App 混合开发新范式:Native 与小程序碰撞下,FinClip 如何重塑移动生态?

xuyinyin

亮相2025年服贸会,天翼云打造高质量算力服务新生态!

天翼云开发者社区

云计算

大数据时代下的全球听风者:舆情监测与海外社媒监控技术演进

沃观Wovision

跨境贸易 社交媒体 沃观Wovision 舆情监测系统 海外舆情监测

解码、优化、跃迁:MyEMS 驱动能源管理从经验到数据的范式升级

开源能源管理系统

开源 开源能源管理系统

上汽荣威携手火山引擎,豆包·深度思考模型全球首发上车M7 DMH

新消费日报

Mermaid代码怎么变成流程图?6个Mermaid在线生成器盘点

职场工具箱

人工智能 流程图 Ai绘图 Mermaid AI生成流程图

破解云VR教育普及难题:点量实时云渲染——实现跨终端无界协同

点量实时云渲染

3D渲染 vr 云渲染 虚拟现实 #云计算

OpenBMB 发布无分词器 TTS VoxCPM;儿童口语硬件 Dex 融资 480 万美元:拍摄真实物体,对话学习外语丨日报

声网

舆情监测的边界拓展与海外社交监控实践

沃观Wovision

跨境贸易 出海 社交媒体 舆情监测系统 海外舆情监测

从负荷分析定项目运维要点

Tecjt_锦图科技

从0到1:我们如何设计并落地一套基于AI平台的内部插件系统

袋鼠云数栈

免费学习优秀作品!和鲸支持 2025 年第 18 届中国大学生计算机设计大赛大数据主题赛圆满收官!

ModelWhale

中国大学生计算机设计大赛 大数据主题赛

抢先体验智能测试时代,QA必备AI测试工具

测试人

人工智能 软件测试

Kafka4.0 可观测性最佳实践

观测云

kafka

有点意思!Java8后最有用新特性排行榜!

王磊

ITSM - 打破部门沟通壁垒,提升问题解决效率

智象科技

ITSM CMDB 一体化运维 工单管理 工单系统

百分点科技BD-OS获华为鲲鹏认证,全栈信创助推政企智能升级

百分点科技技术团队

5 分钟 SAE 极速部署 Dify,赢取户外折叠椅和社区积分

阿里巴巴云原生

阿里云 Serverless 云原生 dify

IT运维的"全局视角":如何实现全周期精准管控?

智象科技

ITSM CMDB IT运维 一体化智能运维平台

MyEMS:重新定义人与能源的关系 —— 一场藏在数据里的能源管理革命

开源能源管理系统

开源 能源管理系统

解读 5 种软件架构模式_架构_Orkhan Huseynli_InfoQ精选文章