知识卡片

5视图方法的五个思维立足点

结构图卡

内容

对程序员而言,本书建议先掌握[[逻辑架构与物理架构的定义与设计任务]]这套2视图方法(要能真正用起来),再进阶到5视图方法——5视图方法适合更大型的软件,更全面覆盖架构设计的各个方面,架构师可以站在5个不同的”思维立足点”分而治之、分别设计。逻辑视图关注职责划分,设计手段包括分模块、分层、划分垂直功能子系统、为模块/层/子系统定义接口。开发视图关注程序单元组织,设计手段包括开发语言选型、Application Framework选择、编译依赖关系管理。运行视图关注控制流组织,设计手段包括多进程技术、多线程技术、中断服务程序。物理视图关注物理节点安排,设计手段包括PC机、服务器、单片机的选型与互联。数据视图关注持久化设计,设计手段包括关系数据库、实时数据库、文件、Flash等存储介质的选型。这五个视图不是凭空拆分出来的,它对应着[[多涉众视角冲突与架构视图的必要性]]提出的问题——不同涉众关心的架构侧面完全不同,5视图方法让每种涉众都能在对应的视图里找到自己真正关心的内容,而不必被塞进一份混杂了所有关注点的大文档里。理解5视图方法的关键不是死记五个名字,而是理解每个视图对应的是”回答哪一类问题”:逻辑视图回答”系统由哪些职责单元组成、如何协作”,开发视图回答”这些职责最终落在哪些程序文件和工程里”,运行视图回答”系统运行起来之后是哪些控制流在跑”,物理视图回答”这些控制流和程序最终跑在哪些机器上”,数据视图回答”数据以什么形式被持久化”——五者依次深入,从抽象职责逐步落到具体的部署和存储细节。

结构图

flowchart TB
    A["逻辑视图\n职责划分:分模块/分层/垂直子系统"] --> B["开发视图\n程序单元组织:语言选型/框架/编译依赖"]
    B --> C["运行视图\n控制流组织:多进程/多线程/中断服务程序"]
    C --> D["物理视图\n物理节点安排:PC/服务器/单片机选型互联"]
    A -.-> E["数据视图\n持久化设计:关系数据库/实时数据库/文件/Flash"]

参考来源

- 位置:《软件架构设计:程序员向架构师转型必备》第10章《细化架构设计》"10.1.2 进阶:5视图方法"节(源文件:_epub-src/OEBPS/text00013.html) - 结论依据:原文列出逻辑视图(职责划分)、开发视图(程序单元组织)、运行视图(控制流组织)、物理视图(物理节点安排)、数据视图(持久化设计)五个"思维立足点"及各自的设计手段举例,并说明"不同视图支持不同涉众的关注点",直接支撑本卡片结论与结构图。 - 原始内容:架构师可以站在5个不同的"思维立足点"、分而治之、分别设计:职责划分(逻辑视图)……程序单元组织(开发视图)……控制流组织(运行视图)……物理节点安排(物理视图)……持久化设计(数据视图)。