架构师修炼之道-读书笔记-第五六章
五、挖掘关键架构需求
关键架构需求ASR:显著影响架构中的结构选择的需求
分为四类
约束:给定或选定的不可更改的设计决策,分为技术约束和业务约束。
质量属性:外部可见特性以及对系统运行的期望
常见的质量属性
设计属性 运行属性 感知属性
可修改性 可用性 可管理性
可维护性 可靠性 可支持性
可复用性 性能 简单性(易用性)
可测试性 可伸缩性(可扩展性) 指导性
可构建性或开发时间 安全性
影响较大的功能需求
产品代办列表 挖掘关键架构需求的宝藏
其他影响因素
六、主动选择架构
设计探索是反复地发散和聚合的过程,确定问题后,发散思维,探索解决方案。找到多个方案后,聚合思维,排除不合适的方案。
探索的方面
1、探索元素及其作用,确定架构的结构组成
有哪些模块以及模块对象
2、探索关系及其接口,确认元素的交互方式
模块之间的关系以及如何交互
3、探索问题领域,理解架构所处的环境
架构的约束
4、探索技术和框架,提升质量属性
理解工具箱工具的使用方式并从中找出合适的工具
5、探索构建和部署方法,确保架构可以交付
软件持续交付的方式
6、探索以往的设计,获得启发,指导决策
温故知新
三层模式
展现层-业务层-数据库
好处:易于测试、部署、描述
坏处:难以提升可伸缩性和可用性
发布订阅模式
好处:可更改性、灵活性
坏处:消息顺序需要确定
面向服务模式
好处:可更改、灵活、可测试性、易于扩展、可用性强
坏处:复杂度高
决策矩阵
每个架构模式对于不同质量属性的效果
将设计决策移出架构 提交架构灵活性