软件架构特性与组件化思维深度解析
立即解锁
发布时间: 2025-08-25 00:16:02 阅读量: 1 订阅数: 4 

### 软件架构特性与组件化思维深度解析
#### 1. 架构特性范围的演变
在软件架构领域,过去普遍认为架构特性的范围是系统级别的。例如,架构师讨论可扩展性时,通常围绕整个系统的可扩展性展开。但在十年前,几乎所有系统都是单体架构,这种假设是合理的。然而,随着现代工程技术和架构风格(如微服务)的出现,架构特性的范围已大幅缩小。这表明,随着软件开发生态系统的不断发展,一些公理正在逐渐过时。
在评估架构时,现有的代码级度量指标虽然能揭示代码的一些低层次细节,但无法评估代码库之外的依赖组件(如数据库)对架构特性的影响。例如,即使架构师精心设计了高性能或弹性的代码库,但如果系统使用的数据库不具备相应特性,应用程序也难以成功。因此,需要一种新的方法来衡量这些依赖关系,于是便有了“架构量子”的概念。
#### 2. 耦合与共生性
许多代码级的耦合度量指标(如传入和传出耦合)对于架构分析来说过于细粒度。1996 年,Meilir Page - Jones 提出了“共生性(Connascence)”的概念:如果一个组件的更改需要另一个组件进行修改以维持系统的整体正确性,那么这两个组件就是共生的。
共生性分为静态和动态两种类型:
- **静态共生性**:可通过静态代码分析发现。例如,在微服务架构中,如果两个服务共享同一个类定义(如地址类),那么它们就是静态共生的,更改共享类需要同时修改两个服务。
- **动态共生性**:涉及运行时行为,又可分为同步和异步两种。同步调用中,调用者需要等待被调用者的响应;而异步调用在事件驱动架构中允许“即发即忘”的语义,使不同服务在操作架构上有所差异。
```mermaid
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(组件A):::process -->|同步调用| B(组件B):::process
C(组件C):::process -->|异步调用| D(组件D):::process
```
#### 3. 架构量子与粒度
架构量子被定义为具有高功能内聚性和同步共生性的独立可部署工件。这个定义包含以下几个关键部分:
- **独立可部署**:架构量子包含独立于架构其他部分运行所需的所有必要组件。例如,如果应用程序使用数据库,数据库就是量子的一部分。在单体架构中,使用单个数据库的系统通常构成一个量子;而在微服务架构中,每个服务都有自己的数据库,从而形成多个量子。
- **高功能内聚性**:组件设计中的内聚性指的是组件内代码的目标一致性。例如,一个包含与客户实体相关的所有属性和方法的客户组件具有高内聚性;而一个包含各种杂项方法的工具组件则不具备。在微服务架构中,每个
0
0
复制全文
相关推荐










