如何画出优秀的架构图?

4+1架构视图

逻辑视图:系统提供给用户的功能,对应 UML 的 class 和 state diagrams

处理视图:系统的处理过程,对应 UML 的 sequence 和 activity diagrams

开发视图:程序员角度看系统的逻辑组成,对应 UML 的 package diagrams

物理视图:系统工程师角度看系统的物理组成,对应 UML 的 deployment diagrams

场景视图:用户角度看系统需要实现的需求,对应 UML 的 use case diagrams

为什么国内很少用4+1架构图 ?

架构复杂度增加:1995 年的系统大部分还是单体系统,现在分布式系统

绑定 UML 图:UML 图画架构图存在问题,UML画架构图太丑了

理解困难:4+1 视图的逻辑视图、开发视图、处理视图比较容易混淆

大厂常见架构图

架构图分类

业务架构

定义:描述系统对用户提供了什么业务功能,类似于 4+1 视图的场景视图。

使用场景

  1. 产品人员规划业务

  2. 给高 P 汇报业务

  3. 给新员工培训业务

画图技巧

  1. 通过不同颜色来标识业务状态

  2. 业务分组管理

客户端架构,前端架构

定义:客户端和前端的领域逻辑架构,类似于 4+1 视图的逻辑视图。

使用场景

  1. 整体架构设计

  2. 架构培训

画图技巧

  1. 通过不同颜色来标识不同角色

  2. 通过连接线来表示关系

系统架构

定义:后端的逻辑架构,又叫 "后端架构"、"技术架构"。

使用场景

  1. 整体架构设计

  2. 架构培训

画图技巧

  1. 通过不同颜色来标识不同角色类型

  2. 通过连接线来表示关系

应用架构

定义:描述后端系统由哪些应用组成。

使用场景

  1. 项目开发、测试

  2. 部署发布

  3. 子域架构设计

画图技巧

  1. 通过不同颜色来标识不同角色

  2. 通过连接线来表示关系

部署架构

定义:描述后端系统具体如何部署的。对应 4+1 视图的物理视图。

使用场景

  1. 总体架构设计

  2. 运维规划和优化

画图技巧

  1. 用图标代替区块

系统序列图