软件架构模式

作者: Go语言由浅入深 | 来源:发表于2021-11-23 23:43 被阅读0次

当你深入到软件工程领域时,总有一天需要学习软件架构模式的基础知识。我刚开始写代码时,并不知道在哪里可以找到一些资料来简要介绍现有的架构模式,这样就不会太过详细和混乱,而是非常抽象和易于理解。

这一直是个问题,直到我发现了Mark Richards的《软件架构模式》一书。在这里,我想与您分享这本书中最重要的部分和架构模式。(要了解更多信息,我强烈建议你阅读这本书或他的报告)。
作为软件工程师,为什么至少要学习基本的架构模式?

我相信有许多文章回答了这个问题,但我将给你一些参考答案。首先,如果您了解架构模式的基础知识,那么您就更容易遵循架构的需求。其次,了解这些模式将帮助您决定如何编码:例如,如果您的应用程序设计是基于事件驱动的微服务,作为一个软件工程师,你必须将代码解耦到单独的服务,应该注意现有服务逻辑的复杂性和职责。(如果你没有理解这部分,就跟随本文,下面将简要解释这些模式)。
Mark Richards在书中描述了5种模式:

  • 分层架构
  • 事件驱动架构
  • 微内核架构(或称为插件架构)
  • 微服务架构
  • 云架构模式

1.分层架构

它是单体应用程序最常见的架构。该模式背后的基本思想是将应用程序逻辑划分为几个层,每层封装特定的角色。例如,持久化层将负责应用程序与数据库的通信。


分层架构

2. 事件驱动架构

此模式背后的思想是将应用程序逻辑解耦为异步接收和处理事件的单一目的事件处理组件。该模式是一种流行的分布式异步架构模式,以高可伸缩性和适应性而闻名。


事件驱动架构

3、微内核架构

微内核架构,也被称为插件架构,是一种设计模式,它有两个主要组件:核心系统和插件模块(或扩展)。一个很好的例子就是Web浏览器(核心系统),您可以在其中安装无限的扩展(或插件)。


微内核架构

4. 微服务架构

微服务架构由独立部署的服务组成,其中每个服务在理想情况下都具有单一的职责。这些服务是相互独立的,如果一个服务失败,其他服务也不会停止运行。


微服务架构

5. 基于空间架构(云架构)

基于空间架构背后的主要思想是分布式共享内存,以减轻经常在数据库级别发生的问题。假设通过使用内存数据库处理大多数的数据操作,我们可以避免额外的操作,因此解决任何未来可能发生的问题。

基本方法是将应用程序划分为处理单元(也可以根据需求自动向上和向下扩展),数据将被复制到对应处理单元中进行处理,这些处理单元之间没有任何持久化的集中数据库(尽管因为系统故障会有本地存储系统)。


基于空间架构

相关文章

  • 编程题外话

    概念 CPU,总线,内存 CPU处理器架构 软件架构模式 软件设计模式 软件系统架构 程序运行过程 进制转换 补码...

  • 《面向模式的软件架构》共5卷,经典!

    Pattern Oriented Software Architecture面向模式的软件架构/面向模式的软件体系...

  • MVC开发模式&三层架构

    MVC:开发模式 三层架构:软件设计架构

  • 设计模式

    架构模式:软件设计中的高层决策,例如 C/S 结构就属于架构模式,架构模式反映了开发软件系统过程中所作的基本设计决...

  • Android关于MVC / MVP / MVVM / Andr

    架构是什么 架构是又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计 架构模式是...

  • 【存档】software-architecture-patter

    软件架构模式简介分层架构模式描述关键概念模式示例注意事项模式分析事件驱动架构中介者拓扑代理人拓扑注意事项模式分析微...

  • MVC&&MVP&&MVVM

    MVC && MVP && MVVM [TOC] 概念 架构模式 也叫架构风格,一个架构模式描述软件系统里的基本的...

  • IOS架构模式MVC、MVP、MVVM

    软件架构的定义?它的存在意义是什么? 软件架构是一系列相关的抽象模式,用于指导软件系统各个方面的设计。软件架构描述...

  • MVC 和 MVVM

    一 MVC模式和MVVM模式 1.MVC模式MVC是一种软件架构模式.把软件分为三层(Model, View, ...

  • MVC、MVVM和MVP

    一、什么是MVC? MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件...

网友评论

    本文标题:软件架构模式

    本文链接:https://www.haomeiwen.com/subject/gkbgtrtx.html