阅读笔记
质量属性我一直知道很重要——性能、可用性、可修改性这些概念谁都懂。但问题是:怎么把它们落实到设计里? 课程讲到“战术”这个概念时,我才有了具体抓手。
可用性战术
可用性的核心是“系统出故障时能维持服务”。课程中讲到的战术包括:
错误检测:如心跳机制、Ping/Echo,用来及时发现故障
错误恢复:如主动冗余(多副本同时运行)、被动冗余(主备切换)、Checkpoint(保存状态以便恢复)
错误预防:如事务机制保证数据一致性、进程监视器自动重启异常进程
可修改性战术
这部分与我之前做项目时的痛点直接相关——每次改一个小功能都要改一堆地方。可修改性战术的核心就是防止这种连锁反应:
信息隐藏:封装内部细节,只暴露接口
维持已有接口:新增功能时优先加新接口,不修改旧接口
引入仲裁者:在依赖双方之间加中间层,如桥模式、调停者模式
延迟绑定:通过配置文件、依赖注入等方式让决策延后
性能战术
性能战术让我意识到,性能不是“优化代码”就能解决的,需要在架构层面做设计:
引入并发机制提高吞吐量
使用缓存减少重复计算
采用优先级调度保证关键任务先执行
一点反思
质量属性之间往往存在冲突。比如引入缓存能提高性能,但增加了系统复杂度,降低了可修改性;做主动冗余能提高可用性,但消耗更多资源,影响性能。这正是架构师需要权衡的地方——没有完美的架构,只有最合适的取舍。

浙公网安备 33010602011771号