PK200

首页 > 游戏资讯 > 正文

软件架构:架构模式、特征及实践指南,架构 软件

时间:2024-06-09 09:47:40

在软件开发中,架构在塑造软件系统的结构和行为方面发挥着重要作用。它提供了系统设计的蓝图,并详细说明了组件如何交互以提供特定功能。然而,由于有如此多不同的架构风格和模式可用,确定特定项目或系统的最佳方法可能非常耗时。本文旨在阐明这些概念并帮助您在架构工作中做出明智的决策。

软件架构:架构模式、特征及实践指南,架构 软件

架构风格和架构模式在深入研究细节之前,区分架构风格和模式非常重要。尽管这些术语经常互换使用,但它们具有不同的含义。架构风格是一种高级策略,为一组系统提供抽象框架。架构风格通过提供常见问题的解决方案来改进组件并鼓励设计重用。您可以将其视为指导建筑物或住宅设计的主题或美学。示例包括分层、事件驱动和微服务。另一方面,架构模式更加具体,并且专注于系统内的特定问题或模块。它们为架构问题提供结构化解决方案,并详细说明如何为特定功能构建组件和交互。它们与软件设计模式类似,但工作在更高的抽象级别。示例包括模型-视图-控制器(MVC)、发布-订阅和无服务器。虽然架构风格提供了一个广泛的框架,并且可以被视为系统设计的一般哲学,但架构模式是该框架内特定设计问题的特定解决方案。换句话说,架构风格描述了系统的整体结构,而架构模式解决了该结构中可能出现的特定设计问题。以下部分描述了十种主要的架构风格,每种风格都有自己的模式、原理、优点、缺点和用途。这些风格包括分层、基于组件、面向服务、分布式系统、领域驱动、事件驱动、关注点分离、解释、并发和以数据为中心。了解这些风格和模式将帮助您更好地驾驭架构景观并设计强大的、可扩展的和可维护的系统。让我们仔细看看吧!

在软件设计的宏伟计划中,样式是画笔的粗略笔触,模式是使杰作栩栩如生的复杂细节。

终极注释为了帮助您快速浏览广阔的架构风格和模式领域,这里有一个软件架构注释,涵盖了本文中讨论的所有要点。这份备忘录是一个非常有用的参考指南,您可以使用它来快速回忆每种建筑风格和模式的主要特征。

软件架构风格备忘录

1. 分层架构风格分层架构是最常见的架构模式之一。常用于传统Web应用和企业级应用。

原则:这种架构风格将关注点划分为不同的层。一个典型的例子是三层架构:表示层、业务逻辑层、数据存储层。分层(n 层)模型n 层架构将系统分为n 层,每层都有特定的职责。最常见的划分是三层:表示层、业务逻辑层、数据存储层。

分层(n 层)架构模式

原则:不同的功能区域由系统的单独且独立的部分处理。 MVVC 模式此模式有助于将图形用户界面开发与业务或后端逻辑开发分开。 MVVC 中的视图控制器负责公开模型中的数据对象,以便可以轻松管理和显示这些对象。这种模式广泛应用于许多用户交互领域,包括桌面和移动应用程序。

MVP 模式是模型-视图-控制器(MVC) 架构模式的派生,主要用于构建用户界面。在MVP中,主持人扮演的是“中间人”的角色。模型和视图是完全分离的,只能通过Presenter 相互通信。 MVP 是现代Web 应用程序的绝佳架构,因为它可以轻松实现单元测试自动化并为您的项目提供干净的结构。

模型-视图-演示者架构模式

8. 解释器架构风格解释器模式是一种设计模式,它定义了如何解析和执行语言中的语句。基本思想是为一种语言(无论是终端还是非终端)中的每个符号创建一个对应的类,然后解释该符号并对其执行操作。

原理:程序指令直接执行,无需先将其转换为机器语言。解释器架构模式

解释器模式此设计模式指定如何解析语言中的语句。基本思想是用专门的计算机语言为每个符号(终结符或非终结符)创建一个类。语言中句子的句法树是构成模式的实例,用于为客户解释(评估)句子。此模式通常由编程语言编译器和解释器、正则表达式引擎以及处理和分析结构化文本数据时使用。

9. 并发架构风格并发是同时执行多个独立任务的系统的属性。

原理:程序的不同部分独立运行,有时同时运行。控制器模式在该模式下,控制器(控制器)控制服务之间的交互。指定业务逻辑的控制流并确保一切按指示发生。此模式通常用于协调多个服务并需要集中控制流程的复杂业务。

命令结构模型

协作模式该模式实现了一个服务系统,其中每个服务独立运行,并通过事件与其他服务交互。没有中央指挥官,与指挥模型不同,每个军种都知道下一步该做什么。此模式用于创建分布式、高度隔离的系统,以提高灵活性和可扩展性。

协作架构模式

主备模式该模式由两类组件组成:主组件和备用组件。主组件将工作分配给相同的备份组件,并根据这些备份机返回的结果计算最终结果。该模式用于并行计算,通过将大型计算任务分布在多个处理器上来加速计算。

管道/管道过滤器模式”。该模式涉及一组处理元素(进程、线程、协程等),其输出是下一个元素的输入。这个想法是将执行复杂处理的任务分解为可以重复使用的单独部分。此模式用于Unix 和类Unix 操作系统上的命令流水线。

10. 以数据为中心的架构这种架构风格侧重于组织和转换数据。它通常用于处理大量数据、执行复杂计算或需要高度可扩展性的系统。

原理:数据库是架构的核心,所有交互都通过它进行。命令查询职责分离(CQRS)模式该模式将数据存储的读写操作分开。这使得读取和写入工作负载可以独立扩展并分别优化。该模式适合读写负载差异较大的应用。

命令查询职责分离(CQRS) 架构模式

事件溯源是一种编程技术,它将应用程序状态的变化建模为一系列不可变的事件或“日志”。在事件源模式中,您的应用程序存储触发状态更改的事件,而不是直接更改状态。此模式适用于需要了解导致其当前状态的事件的系统,例如审核系统或实时协作应用程序。简单来说,事件源模式将应用程序状态变化记录为一系列事件,而不是直接改变应用程序状态,因此你可以跟踪并了解导致当前状态的所有事件,我可以。

Kappa 模式是一种软件架构模式。在Kappa 架构系统中,存储的典型数据是不可变的仅附加日志,这与使用SQL 等关系数据库或Cassandra 等键值存储不同。该模式用于实时数据处理系统。

Lambda 模式是一种数据处理架构,旨在利用批处理和流式方法来处理大量数据。提供强大的容错系统,可以处理硬件故障和人为错误。该模式用于大数据处理任务。

结论总之,理解架构风格和模式对于软件架构师或开发人员来说非常重要。这些样式和模式提供了一种沟通、记录和探索设计选项的方法。它还提供常见问题的解决方案,节省您的时间和精力,并形成更强大和可维护的系统。本文介绍了各种架构风格和模式,每种风格和模式都有自己的优点、缺点和理想用例。然而,这些只是冰山一角。存在许多其他风格和图案,并且新的风格和图案一直在出现。参考文章:https://medium.com/bytebytego-system-design-alliance/the-architects-blueprint-understanding-software-styles-and-patterns-with-cheatsheet-5c1f5fd55bbd