知识卡片
架构重要内容的判定依赖具体情境
内容
一个关注点是否值得架构师亲自关心(是否”架构重要”),标准是它对系统整体结构或关键质量属性(性能、可伸缩性、安全性)有无广泛影响,而非听起来是否高深。同一问题在不同项目答案会反转:普通业务系统的数据库表结构通常不算架构重要内容,可交给团队自行决定;但若系统要跑大量高性能复杂查询,同样的表结构设计就变成架构重要内容,因为设计不当会拖垮性能和稳定性。判断方法是往前看:这个决定会不会影响系统关键质量。
参考来源
- 位置:第5章《软件架构师的角色》5.1.3节「架构定义和设计之间的区别」(源文件:_epub-src/OEBPS/text00043.html附近)
- 结论依据:原文用数据库schema设计是否算架构重要内容为例,说明在数据访问简单的系统中通常不算,但在需要大量高性能复杂查询的系统中就是架构重要内容,判断方法是向前看这个决定的不同选择是否影响系统关键质量,直接支持卡片结论。
- 原始内容:"在数据访问模式相对简单、直接的系统中,我们一般会说数据库schema不是架构重要内容,因为它不会对系统满足品质目标的功能有重大影响。然而,考虑这样的情况,系统会对数据库进行很多对性能要求严格的大型查询……在这种情况下,我们建议大量数据库设计细节都是架构重要内容……当考虑做出架构重要内容的决定时,试着向前看,并考虑那项决定的不同可能选择是否会影响系统的关键质量。"