知识卡片

原子与整体适应度函数的区别

普通读书笔记卡 · 1842.a

内容

原子适应度函数只校验单一架构维度(比如用测试检查组件间是否存在循环依赖),但多个维度各自达标不等于组合起来也没问题。书中举了一个反例:可伸缩性的原子测试要求开启缓存,安全性的原子测试要求数据不过期,两者分开测都能通过;一旦缓存真的打开,安全测试就会因为读到过期数据而失败。整体适应度函数就是为了捕捉这类只有多维度共同作用时才暴露的冲突。

参考来源

- 位置:《演进式架构(原书第2版)》第2章《适应度函数》2.2.1节「按范围分类:原子与整体」(源文件:_epub-src/EPUB/xhtml/chapter06.xhtml) - 结论依据:原文用缓存开启导致安全性和可伸缩性适应度函数冲突的例子,直接支持卡片对整体适应度函数作用的概括。 - 原始内容:"安全适应度函数检查的关键项目之一是数据是否过期,可伸缩性测试检查的关键项目之一是一定延迟范围内的并发用户数量。开发人员应用了缓存技术以满足可伸缩性需求,从而通过可伸缩性的原子适应度函数检查……而当整体运行时,缓存开启使过期数据无法通过安全适应度函数的检查,整体测试失败。"