【架构师】零基础到精通——架构演进

news/2024/5/3 12:53:02/文章来源:https://blog.csdn.net/qq_57473444/article/details/129198337

博客昵称:架构师Cool
最喜欢的座右铭:一以贯之的努力,不得懈怠的人生。
作者简介:一名Coder,软件设计师/鸿蒙高级工程师认证,在备战高级架构师/系统分析师,欢迎关注小弟!
博主小留言:哈喽!各位CSDN的uu们,我是你的小弟Cool,希望我的文章可以给您带来一定的帮助
百万笔记知识库, 所有基础的笔记都在这里面啦,点击左边蓝字即可获取!助力每一位未来架构师!
欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘

架构演进

    • 软件架构模式
      • 1、分层模式
      • 2、客户端-服务器模式
      • 3、主从设备模式
      • 4、管道-过滤器模式
      • 5、代理模式
      • 6、点对点模式
      • 7、事件总线模式
      • 8、模型-视图-控制器模式
      • 9、黑板模式
      • 10、解释器模式

软件架构模式

有没有想过要设计多大的企业规模系统?在主要的软件开发开始之前,我们必须选择一个合适的体系结构,它将为我们提供所需的功能和质量属性。因此,在将它们应用到我们的设计之前,我们应该了解不同的体系结构。
在这里插入图片描述

架构模式是一个通用的、可重用的解决方案,用于在给定上下文中的软件体系结构中经常出现的问题。架构模式与软件设计模式类似,但具有更广泛的范围。

1、分层模式

这种模式也称为多层体系架构模式。它可以用来构造可以分解为子任务组的程序,每个子任务都处于一个特定的抽象级别。每个层都为下一个提供更高层次服务。

一般信息系统中最常见的是如下所列的4层。

  • 表示层(也称为UI层)
  • 应用层(也称为服务层)
  • 业务逻辑层(也称为领域层)
  • 数据访问层(也称为持久化层)

使用场景:

  • 一般的桌面应用程序
  • 电子商务Web应用程序
    在这里插入图片描述

2、客户端-服务器模式

这种模式由两部分组成:一个服务器和多个客户端。服务器组件将为多个客户端组件提供服务。客户端从服务器请求服务,服务器为这些客户端提供相关服务。此外,服务器持续侦听客户机请求。

使用场景:

  • 电子邮件,文件共享和银行等在线应用程序

在这里插入图片描述

3、主从设备模式

这种模式由两方组成;主设备和从设备。主设备组件在相同的从设备组件中分配工作,并计算最终结果,这些结果是由从设备返回的结果。

使用场景:

  • 在数据库复制中,主数据库被认为是权威的来源,并且要与之同步
  • 在计算机系统中与总线连接的外围设备(主和从驱动器)

4、管道-过滤器模式

此模式可用于构造生成和处理数据流的系统。每个处理步骤都封装在一个过滤器组件内。要处理的数据是通过管道传递的。这些管道可以用于缓冲或用于同步。

使用场景:

  • 编译器。连续的过滤器执行词法分析、解析、语义分析和代码生成
  • 生物信息学的工作流

在这里插入图片描述

5、代理模式

此模式用于构造具有解耦组件的分布式系统。这些组件可以通过远程服务调用彼此交互。代理组件负责组件之间的通信协调。

服务器将其功能(服务和特征)发布给代理。客户端从代理请求服务,然后代理将客户端重定向到其注册中心的适当服务。

使用场景:

  • 消息代理软件,如Apache ActiveMQ,Apache Kafka,RabbitMQ和JBoss Messaging

在这里插入图片描述

6、点对点模式

在这种模式中,单个组件被称为对等点。对等点可以作为客户端,从其他对等点请求服务,作为服务器,为其他对等点提供服务。对等点可以充当客户端或服务器或两者的角色,并且可以随时间动态地更改其角色。

使用场景:

  • 像Gnutella和G2这样的文件共享网络
  • 多媒体协议,如P2PTV和PDTP
  • 像Spotify这样的专有多媒体应用程序
    在这里插入图片描述

7、事件总线模式

这种模式主要是处理事件,包括4个主要组件:事件源、事件监听器、通道和事件总线。消息源将消息发布到事件总线上的特定通道上。侦听器订阅特定的通道。侦听器会被通知消息,这些消息被发布到它们之前订阅的一个通道上。

使用场景:

  • 安卓开发
  • 通知服务

在这里插入图片描述

8、模型-视图-控制器模式

这种模式,也称为MVC模式,把一个交互式应用程序划分为3个部分,

  • 模型:包含核心功能和数据
  • 视图:将信息显示给用户(可以定义多个视图)
  • 控制器:处理用户输入的信息

这样做是为了将信息的内部表示与信息的呈现方式分离开来,并接受用户的请求。它分离了组件,并允许有效的代码重用。

使用场景:

  • 在主要编程语言中互联网应用程序的体系架构
  • 像Django和Rails这样的Web框架

在这里插入图片描述

9、黑板模式

这种模式对于没有确定解决方案策略的问题是有用的。黑板模式由3个主要组成部分组成。

  • 黑板——包含来自解决方案空间的对象的结构化全局内存
  • 知识源——专门的模块和它们自己的表示
  • 控制组件——选择、配置和执行模块

所有的组件都可以访问黑板。组件可以生成添加到黑板上的新数据对象。组件在黑板上查找特定类型的数据,并通过与现有知识源的模式匹配来查找这些数据。

使用场景:

  • 语音识别
  • 车辆识别和跟踪
  • 蛋白质结构识别
  • 声纳信号的解释

在这里插入图片描述

10、解释器模式

这个模式用于设计一个解释用专用语言编写的程序的组件。它主要指定如何评估程序的行数,即以特定的语言编写的句子或表达式。其基本思想是为每种语言的符号都有一个分类。

使用场景:

  • 数据库查询语言,比如SQL
  • 用于描述通信协议的语言

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_262330.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为OD机试题,用 Java 解【查找接口成功率最优时间段】问题

最近更新的博客 华为OD机试 - 猴子爬山 | 机试题算法思路 【2023】华为OD机试 - 分糖果(Java) | 机试题算法思路 【2023】华为OD机试 - 非严格递增连续数字序列 | 机试题算法思路 【2023】华为OD机试 - 消消乐游戏(Java) | 机试题算法思路 【2023】华为OD机试 - 组成最大数…

【数据库】redis集群环境详解

目录 集群环境 一,集群介绍 1、为什么需要redis集群 2、什么是redis集群 二,数据分片 三, 主从复制模型 四,一致性保证 五,集群搭建 1, 集群结构 2,创建配置文件 (1&#…

RebbitMQ 消息队列(简单使用)

消息队列介绍 MQ的优势 1.业务解耦:不同系统消费信息互不关联,灵活增减系统数量,修改某个系统其他系统也不影响 2.异步提速:不同系统之间可同时响应,提升并发量 3.削峰填谷:处理消息高峰期,均摊…

Ubuntu通过kubeadm安装k8s

kubeadm kubeadm是一个构建k8s集群的工具。它提供的kubeadm init和 kubeadm join 两个命令是快速构建k8s集群的最佳实践。 其次,kubeadm工具只为构建最小可用集群,它只关心集群中最基础的组件,至于其他的插件(比如dashboard、CNI…

SpringCloud - Gateway网关路由

目录 网关初步介绍 搭建网关服务 路由断言工厂Route Predicate Factory 路由过滤器 GatewayFilter 全局过滤器 GlobalFilter 过滤器执行顺序 网关的cors跨域配置 网关初步介绍 不是所有的请求,都能访问服务,所以需要网关对来访问的请求进行提前判…

java 9 的新特性解读(1)

前言  经过4次跳票,历经曲折的Java 9 终于终于在2017年9月21日发布。  从Java 9 这个版本开始,Java 的计划发布周期是 6 个月,下一个 Java 的主版本将于 2018 年 3 月发布,命名为 Java 18.3,紧接着再过六个月将发布…

CSS 盒子模型【快速掌握知识点】

目录 一、什么是盒子模型 二、边框border-color 三、边框粗细border-width 四、边框样式border-style 五、外边距margin 六、内边距padding 七、圆角边框 八、圆形 九、盒子阴影 一、什么是盒子模型 css盒子模型又称为框模型,盒子的最内部是元素的实际内容…

【Git】与“三年经验”就差个分支操作的距离

前言 Java之父于胜军说过,曾经一位“三年开发经验”的程序员粉丝朋友,刚入职因为不会解决分支问题而被开除,这是不是在警示我们什么呢? 针对一些Git的不常用操作,我们通过例子来演示一遍 1.版本回退 1.1已提交但未p…

notepad++如何快速批量搜索复制,3步搜索+标记所在行+复制书签行

一。缘起 用习惯了 某edit, 突然用notepad很不习惯,至少3处不习惯:列操作,批量复制搜索行,和是txt文件比较。 另外一直坚持认为,不提供快捷键操作的软件不是好软件:)当下屏幕对眼睛迫害至深的时…

SGI 空间配置器

前言 空间配置器是 STL 六大组件之一,它总是隐藏在容器的背后,默默工作,默默付出。本文为《STL 源码剖析》读书笔记,主要讨论 SGI 版本空间的配置和释放,对代码进行解读时会改变一些写法,使其更易于阅读。…

企业急需:拥有一个属于自身的知识库!

如今,拥有知识库对任何企业来说都是绝对必要的。特别是在软件即服务方面。如果您真的希望您的 SaaS 业务取得成功,您需要从第一天开始构建知识库。为什么?首先,SaaS 公司有一个货币化模型,专注于他们的每月经常性收入 …

多传感器分布式融合算法——多传感器网络协同目标跟踪和定位

多传感器分布式融合算法 应用: 多传感器网络协同目标跟踪及定位 原创不易,路过的各位大佬请点个赞 主要讲解算法: 多传感器集中式融合算法/分布式融合算法/序贯融合算法 多速率多传感器异步融合算法 多传感器…

PHP程序员适合创业吗?

创业是一件自然而然的事,不需要人为选择。 只要你是一个努力能干主动的人,当你在一个行业深耕5年之后,就会发现人生发展的下一步就是创业。当然如果行业合适的话。 什么叫行业合适呢? 就是创业的成本并不那么高,不需…

js 实现 Logo(图片)根据图片后面的图片颜色而变化成相反的颜色【解决logo固定后 会出现与不同板块的颜色相同导致于看不清logo的情况】

效果展示&#xff1a; <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <meta http-equiv"X-UA-Compatible" content"ieedge"><style type"text/css…

Unreal Engine 虚幻引擎,性能分析,优化(二)

一、CPU 性能分析 如渲染线程中出现 CPU 受限&#xff0c;原因可能是绘制调用过多。这是一个常见问题&#xff0c;美术师通常会将绘制调用进行组合&#xff0c;从而减少消耗&#xff08;如&#xff1a;将多个墙壁组合为一个网格体&#xff09;。实际消耗存在于多个区域中&…

vue3路由守卫

文章目录路由守卫1.全局路由守卫2.组件内守卫3.路由独享守卫提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考路由守卫 全局守卫&#xff08;3个&#xff09; 路由独享守卫&#xff08;1个&#xff09; 组件的守卫&#xff08;3个&#xff09; 路由守卫的…

蓝牙运动耳机哪个好,比较好的运动蓝牙耳机

很多想选择蓝牙运动耳机的朋友都不知道应该如何选择&#xff0c;运动首先需要注意的就是耳机的防水能力以及耳机佩戴舒适度&#xff0c;在运动当中会排出大量的汗水&#xff0c;耳机防水等级做到越高&#xff0c;可以更好地保护耳机不受汗水浸湿&#xff0c;下面就分享五款适合…

《图机器学习》-Graph Neural Network

前言 回顾之前的Node Embedding&#xff1a; 将图中的节点嵌入到d维空间&#xff0c;并确保图中相似的节点能够嵌在一起。 即学习一个编码器ENCENCENC确保图的节点嵌入到embedding space依然能够描述原空间节点之间的相似性。 在Node Embedding中&#xff0c;我们需要设计&…

CSCode 配置一条龙 CPP/CC

下载 官⽹下载地址&#xff1a;Download Visual Studio Code - Mac, Linux, Windows 下载太慢&#xff0c;推荐⽂章&#xff1a;解决VsCode下载慢问题_wang13679201813的博客-CSDN博客_vscode下载慢 安装 无脑下一步 推荐插件 免配置&#xff1a; 1. Remote - SSH - 远程…

骨传导耳机是怎么传声的,选择骨传导耳机的时候需要注意什么?

​骨传导耳机之所以能够成为当下最火的耳机&#xff0c;骨传导技术将声音转化为震动感&#xff0c;通过骨头进行传播&#xff0c;不会堵塞耳朵&#xff0c;就不会影响到周围环境音。这种技术也让骨传导耳机比传统入耳式耳机更安全&#xff0c;无需入耳式设计&#xff0c;避免了…