配速记页 03-evaluation 使用。
架构是一系列难以逆转的早期决策:数据库选型、服务边界、通信方式,返工成本随时间指数增长——越晚发现架构错误,代价越大(业界常引的结论:架构级缺陷在维护期修复的成本是需求期的 10-100 倍)。
但架构又只是「一堆文档和图」,没跑起来之前怎么知道好坏?答案是:用场景当探针。就像材料实验室不能等桥造好才测强度,而是用标准试件做破坏性实验——评估用「关键场景」去冲击架构描述,看它的响应。
SAAM(1993)——「架构能支撑这些功能吗」 最早的正式方法。拿场景(主要是功能/修改场景)逐个套架构,看架构元素如何响应。发现了一个重要副产品:场景交互(两个场景落到同一模块 = 该模块承担多职责 = 修改时的风险点)。SAAM 把「耦合度」从直觉变成了可数的证据。
ATAM(2000)——「架构在质量属性间怎么权衡」 升级点有两个:一是引入效用树,让干系人的诉求(重要度 I × 难度 M)系统化排列,评估聚焦最关键场景;二是把分析目标从「能不能」升级为「敏感点、权衡点、风险、非风险」四种结论——架构决策的「体检报告」。
CBAM(2002)——「值得花这个钱吗」 ATAM 告诉你哪里有风险,CBAM 告诉你修复哪个风险的性价比最高。每个架构决策算 ROI(收益=风险消除×概率,成本=改造投入)。这是架构从技术走向经济学的标志——架构师最终要对「钱」负责。
敏感点:对单个质量属性有显著影响的架构决策。
例:「消息队列的持久化策略」影响消息可靠性。
权衡点:对多个质量属性有影响、且方向相反的决策。
例:「同步刷盘」提可靠性、降吞吐。
风险:可能危及某质量属性的决策 + 理由。
例:「订单库单点部署无冗余——若宕机则交易全停(可用性风险)」。
非风险:经分析确认满足需求的决策(注意:要有依据,不能是「应该没问题」)。
例:「读写分离后读 QPS 8000 < 单从库上限 1.2 万,满足性能需求」。
四个概念的关系(选择题考点):