1.2.1 引导式变更

一旦团队选定了重要的架构特征,他们就希望引导架构的变更方式,以保护这些特征。为此,我们借用演进计算中的一个概念:适应度函数。适应度函数是一种目标函数,用于计算潜在的解决方案与既定目标的偏差。在演进计算中,适应度函数用来判定一个算法是否随着时间的推移而改进。换句话说,随着每个算法变体的产生,适应度函数基于算法设计者定义的“适应度”决定每种变体的“适应度”。

在演进式架构中有类似的目的:随着架构的演进,我们需要一种机制来评估变更对重要架构特征的影响,并防止这些架构特征随时间腐化。适应度函数的隐喻涵盖了多种机制,用来保证架构朝着我们期望的方向变化,包括度量、测试和其他验证工具。每当架构师明确一种想要在演进中保护的架构特征时,他们可以定义多个适应度函数来提供防护。

以往,架构涉及的一部分工作常常被视为治理活动,直到最近架构师才接受了通过架构实现变更的思想。架构适应度函数允许在组织需求和业务功能的上下文中制定决策,同时为其明确性和可测试性奠定基础。演进式架构不是一种无组织、不负责任的软件开发方式。恰恰相反,它是一种能够在业务的高速变化和稳定的系统及架构特征之间寻求平衡的方式。适应度函数驱动架构设计决策,使得架构能够适应业务和技术环境的变化。

我们将在第2章详述如何使用适应度函数来指导演进。