首页/管理/IT 管理与治理速查/架构适应度函数 Fitness Functions

架构适应度函数 Fitness Functions

适应度函数把架构要求写成可自动验证的检查(如分层依赖规则、性能门槛、安全基线),在流水线中持续执行,防止架构在迭代中悄悄退化。

IT 管理与治理速查管理更新于 2026-10-13

适应度函数是什么

架构适应度函数(Fitness Function)把架构要求写成可自动验证的检查,例如分层依赖规则、性能门槛、安全基线与接口契约,并在流水线或定期扫描中持续执行。它的价值在于把“架构约束”从文档里的一句话变成每次提交都会被检验的条件,防止架构在迭代中悄悄退化。

怎么设计

检查要少而准:每条检查都要有明确的失败动作(阻塞合并还是仅告警)和修复指引,否则会被当成噪声绕过。对存量系统可以用棘轮策略——先冻结现状,只禁止新增违规,再分批收敛。检查项本身也要版本化并指定维护人,随架构演进调整。

基本信息

检查类型结构规则、性能门槛、可靠性验证、安全与合规检查
载体CI 检查、定期扫描、生产巡检
输出通过、告警或阻塞,并给出修复指引
维护检查项版本化,指定架构或平台团队负责

典型使用场景

  • 分层架构:禁止 domain 层直接依赖 infrastructure 层
  • 性能约束:核心接口在基准环境下的 P95 阈值
  • 安全基线:禁止明文密钥入库、依赖漏洞高危及阻塞
  • 接口契约:对外接口变更需通过兼容性检查
  • 可运维性:新服务必须具备健康检查与日志规范
  • 存量收敛:先冻结现状,再逐步降低违规数量

检查示例

检查示例
# 结构规则:分层依赖(架构测试或静态检查)
禁止:domain 层 import infrastructure 层
# 性能门槛:在基准环境用固定数据集压测
核心接口 P95 < 200ms,超出则阻塞合并
# 安全与合规
依赖漏洞高危 0 个、禁止硬编码密钥
# 可运维性
新服务必须注册健康检查端点并接入日志采集

类型与失败动作

类型检查示例失败时动作
结构分层依赖、模块边界阻塞合并并要求重构
性能P95 门槛、慢查询数阻塞或告警,视业务重要度
安全漏洞等级、密钥扫描阻塞合并,高危需限期修复
运维健康检查、日志规范告警并要求补齐后上线
阈值要基于可复现的基准环境和固定数据集,否则同样的代码在机器负载波动时结果不同,检查会被判定为不可信而失效。

易错点

  • 检查过多过严:流水线频繁误报阻塞,团队绕过或直接关闭检查
  • 只查新增不管存量:老系统持续退化,整体架构债无人处理
  • 无失败修复指引:报错信息只写“检查失败”,团队不知道如何改
  • 阈值拍脑袋:与业务实际不符,通过率全靠运气
  • 检查不随架构演进:约束早已过时,团队只能选择忽略

数据来源与参考

  • 《Building Evolutionary Architectures》(Ford 等)适应度函数概念
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌