知识卡片

"不支持该场景"是有价值的决策

普通读书笔记卡

内容

运用[[场景技术的五要素与目标场景决策表]]针对质量属性做设计时,有一条容易被忽视但极其重要的原则:明确”不支持该场景”恰恰是一种有价值的决策,而不是设计的失败或偷懒。如果每一个被识别出来的场景都要求架构去支持,理性设计就无从谈起,过度设计将在所难免——场景卡和场景收集技术的价值不在于”发现的场景越多越好”,而在于”帮助架构师系统性地看到所有候选场景之后,再理性地筛选出真正值得投入设计精力的那部分”。这就要求在实践中必须对每个场景进行评估,来决定这个场景是否值得支持。架构师经常要考虑的场景评估因素包括:价值大小(支持这个场景能带来多大的实际收益)、代价大小(支持它需要付出多少设计和实现成本)、开发难度高低、技术趋势(这类需求未来是否会变得更重要或被淘汰)、出现几率(这个场景在真实使用中发生的频率有多高)。这条原则的实际意义在于:一份写满密密麻麻场景的目标-场景-决策表,如果对每个场景都给出”支持”的决策,反而说明架构师没有真正做出取舍——真正体现架构设计功力的地方,恰恰是那些被明确标注”不支持”的场景,因为这意味着架构师已经权衡过价值、代价、难度、趋势、几率这些因素,并主动划定了这个架构方案的能力边界,而不是试图无限扩展、最终什么都做不好。

参考来源

- 位置:《软件架构设计:程序员向架构师转型必备》第9章《概念架构设计》"9.4.3 场景思维的工具"节(源文件:_epub-src/OEBPS/text00012.html) - 结论依据:原文说明"运用目标—场景—决策表针对质量进行设计时,'不支持该场景'恰恰是一种有价值的决策——如果每个场景都支持,理性设计就无从谈起,多度设计就在所难免了",并列出价值大小、代价大小、开发难度高低、技术趋势、出现几率五项评估因素,直接支撑本卡片结论。 - 原始内容:运用目标—场景—决策表针对质量进行设计时,"不支持该场景"恰恰是一种有价值的决策——如果每个场景都支持,理性设计就无从谈起,多度设计就在所难免了。这就要求我们在实践时,必须对场景进行评估,以决定是否支持这个场景。