知识卡片
架构视图分而治之的双重价值
内容
架构视图是”对于从某一视角看到的系统所作的简化描述,涵盖系统的某一特定方面,省略与此方面无关的实体”——用生活中的例子理解更直观:同一个世界,社会学家关心人口分布图,气候学家关心年降水量分布图,两者是同一事物的不同视图,且彼此存在关联(除南美洲外,降水量足的地方人口通常更密集),软件架构的多个视图之间也存在这种相互影响关系。多视图方法通常被简单理解成”架构归档的手段”(不同涉众各自需要架构决策的不同子集,逐一提供对应视图便于交流——如系统工程师最关心部署环境和通信协议,开发人员最关心模块划分和接口定义),但这只说对了一半,多数书籍恰恰忽视了它更关键的第二重价值:多视图更是架构设计的思维方式,而不只是归档方式。这一点的依据是认知科学的常识——越复杂的问题越需要分而治之,架构作为一个复杂整体,架构师不可能”一下子”把它想清楚;把架构拆成不同视图,让架构师能分别专注于某一方面、相对独立地分析和设计各个”子问题”,相当于把”整个问题”简化和清晰化了,不必担心逻辑层、物理层、功能子系统、模块、接口、进程、线程、消息、协议这些设计维度统统混在一起。理解这个双重价值的意义在于:如果只把视图当归档工具,设计阶段依然会陷入”眉毛胡子一把抓”的困境;只有把视图前置到设计思考本身,才能真正发挥”分而治之”应对复杂性的效果。
参考来源
- 位置:《软件架构设计:程序员向架构师转型必备》第3章《理解架构设计视图》"3.2.1 架构视图"及"3.2.3 多组涉众,多个视图"节(源文件:_epub-src/OEBPS/text00006.html)
- 结论依据:原文引用Kruchten"一个架构视图是对于从某一视角或某一点上看到的系统所作的简化描述"的定义,并明确指出"大多数书籍中都强调多视图方法是软件架构归档的方法,却忽视了该方法对架构设计思维的指导作用。而本书强调,多视图不仅是归档方式,更是架构设计的思维方式",直接支撑本卡片结论。
- 原始内容:大多数书籍中都强调多视图方法是软件架构归档的方法,却忽视了该方法对架构设计思维的指导作用。而本书强调,多视图不仅是归档方式,更是架构设计的思维方式。