首页 > 其他分享 >软件架构模式之第一章:介绍

软件架构模式之第一章:介绍

时间:2024-02-07 12:47:54浏览次数:28  
标签:设计模式 架构 开发人员 应用程序 第一章 风格 软件架构 模式

      在缺乏正式架构的情况下,开发人员开始编写应用程序是一种非常普遍的做法。这种做法通常会导致组件定义不明确,创建出被称为“大泥球”的东西。这些结构通常紧密耦合、脆弱且难以改变,并且缺乏清晰的愿景或方向。在没有定义良好的架构风格时,也很难确定应用程序具有哪些架构特征。该架构是否可伸缩?应用程序性能如何?更改应用程序或添加新功能是否容易?架构响应速度如何?

       架构风格有助于定义应用程序的基本特征和行为。一些架构风格自然地适用于高度可伸缩的系统,而其他架构风格则自然地适用于允许开发人员快速响应变化的应用程序。了解每种架构风格的特点、优势和劣势对于选择满足特定业务需求和目标的架构风格是必要的。自2015年第一版本报告发布以来,软件架构经历了许多变化。微服务和事件驱动架构都变得越来越受欢迎,开发人员和架构师已经探索出设计和实现这些架构风格所需的新技术、工具和方法。此外,领域驱动设计广泛使用也导致了对如何结构化划分架构以及划分如何影响应用程序设计与实现有更深入理解。第二版报告解决了这两个问题,并增加了其他重要增强功能,还提供更多关于架构与数据交集方面信息,并在每章末尾添加扩展分析部分。这些新部分为您提供更好指引,在选择是否使用本报告中介绍的各种架构时给予指导。

       在第二版中,您会注意到一个变化,即本报告所描述的架构被称为“架构风格”而非“架构模式”。这个区别有助于消除一些困惑,例如事件驱动架构——一种架构风格和CQRS(命令查询责任分离)等架构模式之间的差异。

       一个架构风格,例如在本报告中提及的那些,描述了系统的宏观结构。而架构模式则是描述可重用的结构性构建块模式,可用于解决特定问题,在每个架构风格中都可以应用。以广为人知的CQRS模式为例,它描述了对数据库或事件系统进行结构上分离以实现读操作和写操作之间的隔离(例如将读操作和写操作分离成服务和数据库)。这种架构模式适用于本报告所述任何一种架构风格,并能优化数据库查询和更新。

        架构模式与设计模式(如生成器设计模式)有所不同,架构模式主要影响系统的结构方面,而设计模式则主要影响源代码的设计方式。例如,在微服务架构中可以采用生成器设计模式来实现CQRS架构模式,并将CQRS作为其组成部分之一。图1-1展示了这三个术语之间的层次关系以及它们在软件系统构建中的相互关联。   

 Figure 1-1. Architecture styles can be composed of architecture patterns,which in turn can be composed of design patterns

 

          设计模式和架构模式通常结合在一起,形成一个完整的解决方案。同样地,架构风格也以类似的方式工作——当构建软件解决方案时,它们可以相互融合为一个完整的解决方案。在现实世界中,混合使用不同的架构风格非常普遍,因为并非每种架构风格都能够解决所有业务问题。常见的混合架构风格包括基于事件驱动的微服务(通过微服务之间的事件进行通信)、基于空间划分的微服务(将处理单元作为微服务实现)甚至是事件驱动型微内核架构(核心系统与远程插件组件之间通过事件进行交互)。虽然混合使用是一种常见做法,但在将它们结合使用之前,了解各个独立架构风格及其对应优缺点至关重要。这份更新版报告与第一版目标相同:帮助高级开发人员和架构师理解更加常见的架构风格、它们如何工作以及何时适用或不适用。这不仅有助于扩展您对于架构知识的了解,还能够帮助您做出正确选择来设计系统。

 

标签:设计模式,架构,开发人员,应用程序,第一章,风格,软件架构,模式
From: https://www.cnblogs.com/areswien/p/18010808

相关文章

  • 软件架构模式之第二章:架构结构和风格
        架构风格允许您利用现有且广为人知的结构,以支持特定的架构特征(也称为非功能性质量属性、系统质量属性或“-ilities”)。它们不仅提供了一个定义给定系统架构起点的框架,还促进了开发人员、架构师、质量保证测试人员、运营专家甚至在某些情况下业务相关方之间的交流。 ......
  • 通达信【龙头战狼】珍藏版套装指标 止盈止损 胜者为王 终极盈利模式 源码文件分享
    {股票指标}【战狼波段主图】本套指标设计两个主图,一个看盘简单明了,还有一个波段主图,操作波段上涨非常好,买卖点明确!【战狼主力资金】副图有拉升资金和主力资金两个信号,两个信号都大于0,而且处于上升趋势,易产生大妖股,可以辅助战狼信号操盘.1、指标原理:本指标主力洗盘+拉升特征......
  • golang之设计模式
    [选项模式]packagemainimport"fmt"typeOptionFuncfunc(*DoSomethingOption)typeDoSomethingOptionstruct{aintbstringcbool}funcNewDoSomethingOption(cbool,opts...OptionFunc)*DoSomethingOption{s:=&DoSomethi......
  • 【设计模式】原型模式——其他框架源码中的原型模式
    原型模式在其他框架源码中也有广泛的应用。Retrofit众所周知Retrofit是OkHttp的扩展,因此Retrofit的Call接口也像OkHttp的Call类一样实现了原型模式。Call与原型模式有关的代码如下:publicinterfaceCall<T>extendsCloneable{//……代码省略……/***Createanew,i......
  • 设计模式(Design Pattern)
    目录设计模式(DesignPattern)面向对象设计原则创建型模式结构型模式行为型模式设计模式(DesignPattern)概念与定义是一套被反复使用的、多数人知晓的、经过分类编目的代码设计经验的总结。设计模式(DesignPattern)是一种对于软件系统中不断重现的设计问题的解决方案进行......
  • 问题:深蹲动作模式,练习中双脚支撑的宽度是怎么样的?
    问题:深蹲动作模式,练习中双脚支撑的宽度是怎么样的?参考答案如图所示......
  • springboot整合redis的哨兵模式
    在SpringBoot中整合Redis的哨兵模式涉及到配置SpringBoot应用程序以连接到Redis哨兵集群。哨兵模式是Redis的一种高可用解决方案,它提供了自动故障转移功能,可以在Redis主节点发生故障时自动将一个从节点升级为新的主节点。步骤1:安装并配置Redis哨兵集群首先,您需要在您的服务器上......
  • 设计模式--建造者模式
    建造者模式(BuilderPattern)是一种对象构建设计模式,它提供了一种构建对象的最佳方式。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在建造者模式中,一个导演(Director)负责组织各个部分(Builder)的构建步骤,一个抽象构建器(AbstractBuilder)定义了各个部分的构建和......
  • 《程序是怎样跑起来的》第一章,第二章读书感悟
    第一章:一、主要内容第一章主要介绍了计算机的基本构成和运行原理。作者从一台简单的计算机模型入手,逐步介绍了CPU、内存、输入输出设备等基本组件的功能和相互关系。一、读书感悟看完第一章,我对计算机的基本构成有了一定的理解。知道了计算机是由多个组件组成的,这些组件之间......
  • 《程序是怎样跑起来的》第一章观后感
    观看了《程序是怎样跑起来的》第一章之后,我获得了对计算机程序运行机制的初步理解。这一章节作为整个系列的基础,通过简明扼要的语言和形象的比喻,向我们展示了程序从编写到执行的全过程,让我深刻感受到了编程的魅力。首先,本章介绍了构成计算机的基本元素:硬件和软件。硬件包括CPU、......