Condivisione della tecnologia

Tutorial sull'architetto di sistema (Tsinghua 2a edizione) <Capitolo 1 Introduzione> Interpretazione

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1.1 Panoramica dell'architettura del sistema

   系统架构(System Architecture)是系统的一种整体的高层次的结构表示,是系统的骨架和根基,支撑和链接各个部分,包括组件、连接件、约束规范以及指导这些内容设计与演化的原理。它是刻画系统整体抽象结构的一种手段,也决定了系统的健壮性和生命周期的长短。

1.1.1 Definizione e storia dello sviluppo dell'architettura del sistema

   软件系统架构是指对软件系统整体结构和组成部分的规划和设计,包括不同模块之间的关系、数据流动、处理流程、分层和模块化结构等。软件系统架构的设计可以帮助开发团队更好地理解系统的整体结构,提高系统的可维护性、可扩展性和性能。
   软件系统架构的发展历程可以大致分为以下几个阶段:
   1. 单层结构:最早期的软件系统架构采用单层结构,即将所有功能模块都集中在一个程序中实现。这种结构简单直观,但随着软件系统规模的增大和复杂度的提高,单层结构难以满足需求。
   2. 分层结构:分层结构将软件系统划分为不同的层次,每个层次负责不同的功能。常见的分层结构包括三层架构和MVC架构。分层结构可以提高系统的可维护性和扩展性,同时降低了开发的复杂性。
   3. 客户端-服务器架构:客户端-服务器架构是一种分布式架构,将客户端和服务器端分开,客户端负责用户界面和用户输入,服务器端负责处理逻辑和数据存储。这种架构可以减轻服务器端的负担,提高系统的性能和扩展性。
   4. 面向服务的架构(SOA):面向服务的架构将系统划分为多个独立的服务,每个服务可以独立部署和扩展。不同服务之间通过接口进行通信,实现系统的灵活性和可重用性。
   5. 微服务架构:微服务架构是一种轻量级的面向服务的架构,将系统划分为多个小型独立服务,每个服务可以独立开发、部署和运行。微服务架构提供了更好的可扩展性和弹性,适合大型复杂系统的构建。
   总的来说,软件系统架构经历了从单层结构到分层结构、客户端-服务器架构、面向服务的架构再到微服务架构的发展过程,不断地提高系统的可维护性、可扩展性和性能,促使软件开发变得更加高效和灵活。

1.1.2 Classificazioni comuni e metodi di modellazione dell'architettura software

   软件架构通常可以分为四种常用分类:
   1、分层架构
   将软件系统分解为不同的层次,每一层都有特定的职责和功能。常见的分层架构包括三层架构(展示层、业务逻辑层和数据访问层)和四层架构(展现层、通讯层、服务层和数据访问层)等。

Inserisci qui la descrizione dell'immagine
2. Progettazione guidata dal dominio (DDD)
Prendendo come nucleo centrale il campo delle applicazioni software, il sistema viene scomposto in diversi modelli di dominio e sottodomini e le funzioni del sistema vengono realizzate attraverso la progettazione e l'implementazione di modelli di dominio.
Nel 2004, Eric Evans ha pubblicato il libro Domain-Driven Design–Tackling Complexity in the Heart of Software From then on, Domain-Driven Design (DDD) Birth. L'idea centrale di DDD è definire modelli di dominio attraverso metodi di progettazione basati sul dominio per determinare i confini aziendali e applicativi e garantire la coerenza tra modelli di business e modelli di codice.
DDD è un'idea progettuale che utilizza un linguaggio comune per modellare il dominio aziendale attraverso tempeste di eventi e conduce una ragionevole suddivisione del dominio attraverso contesti delimitati, che può rendere