WeChat 微信公众号 (阿里巴巴中间件)
dev-toolsproductivity
Original source

如何画出一张优秀的架构图(老鸟必备)

Summary

阿里巴巴技术专家「三画」分享的架构图方法论,推荐使用 C4 模型来画清晰的架构图。

核心理念

  • 画图前先明确:受众是谁?要传递什么信息?
  • 好的架构图是自描述的,不需要额外解释
  • 不要为了画某种视图而画,应根据受众和目的选择

4+1 视图分类

  1. 场景视图 — 参与者与功能用例关系(用例图)
  2. 逻辑视图 — 软件功能拆解后的组件关系(组件图/类图)
  3. 物理视图 — 软件到硬件的映射(部署图)
  4. 处理流程视图 — 组件间通信时序(时序图/流程图)
  5. 开发视图 — 模块划分和包组成

C4 模型(推荐方法)

Level 1: 语境图 (System Context Diagram)

  • 受众:内部/外部技术或非技术人员
  • 内容:系统本身 + 用户 + 周边交互系统
  • 回答:建什么?谁用?如何融入现有IT环境?

Level 2: 容器图 (Container Diagram)

  • 受众:开发人员、运维人员
  • 内容:系统内的应用、数据库、微服务及其交互
  • 回答:整体形态、技术决策、职责分布、在哪写代码

Level 3: 组件图 (Component Diagram)

  • 受众:内部开发人员
  • 内容:某个容器内部的模块组成
  • 回答:由哪些组件组成、依赖关系、如何分解交付

Level 4: 类图 (Code/Class Diagram)

  • 受众:技术人员
  • 内容:代码级别的类关系

常见问题

  • 方框/圆形/线条没有统一含义 → 引起混淆
  • 运行时与编译时概念混在一张图 → 语义混乱
  • 图不分层级,一张图塞所有信息 → 无法理解

参考