软件架构特性与组件化思维解析
1. 架构特性范围的演变
过去,软件架构领域普遍默认架构特性的范围处于系统层面。例如,架构师讨论可扩展性时,通常围绕整个系统的可扩展性展开。在十年前,几乎所有系统都是单体架构,这种假设是合理的。但随着现代工程技术和微服务等架构风格的出现,架构特性的范围大幅缩小。这体现了随着软件开发生态系统的不断发展,一些公理逐渐过时。
在评估许多操作架构特性时,架构师需要考虑代码库之外会影响这些特性的依赖组件。例如,无论架构师如何努力设计高性能或弹性的代码库,如果系统使用的数据库不具备相应特性,应用程序也难以成功。因此,需要一种新的方法来衡量这些依赖关系,由此引出了“架构量子”的概念。
2. 耦合与共生性
许多代码级别的耦合度量,如传入和传出耦合,对于架构分析来说过于细粒度。1996 年,Meilir Page - Jones 提出了“共生性(Connascence)”的概念:
- 定义 :如果一个组件的更改需要另一个组件进行修改以维持系统的整体正确性,则这两个组件具有共生性。
- 类型 :
- 静态共生性 :可通过静态代码分析发现。例如,在微服务架构中,两个服务共享同一个类定义(如地址类),则它们具有静态共生性,更改共享类需要同时修改两个服务。
- 动态共生性 :涉及运行时行为,又分为同步和异步两种。同步调用中,调用者需等待被调用者的响应;异步调用则允许在事件驱动架构中实现“即发即忘”的语义,使不同服务在操作架构上有所差异。
下面是
超级会员免费看
订阅专栏 解锁全文
169万+

被折叠的 条评论
为什么被折叠?



