知识卡片

质量属性此消彼长

普通读书笔记卡 · 1958.r

内容

可修改性、可伸缩性、延迟等质量属性之间通常互相制约,同时把多个质量属性做到极致几乎不可能:想获得更好的可伸缩性,往往要牺牲查询的实时性和临时改查询的便利性;想让延迟更低,可能就要放弃某种灵活性。这意味着评估一个架构不能只问”它支持哪些质量属性”,还要问”它为此放弃了什么”——如果某个方案在多个质量属性上都表现良好,更值得警惕是否遗漏了某个被牺牲的维度,而不是简单庆幸。

参考来源

- 位置:《恰如其分的软件架构》第1章《概述》1.3节《反思》(源文件:_epub-src/OEBPS/text00007.html) - 结论依据:原文以Rackspace三代系统为例,说明可伸缩性更好的第三代系统以牺牲即席查询能力和延迟为代价,并总结"若要将一种质量属性发挥到极致,就必然意味着其他质量属性会因而降低"。 - 原始内容:还需谨记,天下并无免费的午餐:提升一种质量就会抑制另一种……要将一种质量属性发挥到极致,就必然意味着其他质量属性会因而降低。