山海镜花官方手游
364.08MB · 2025-12-05
第一次画架构图是在项目评审会上。领导突然说:"小王,你来讲讲你这个系统的架构。"
我打开PPT,盯着空白的画布,脑子里一片混乱:要不要用3D效果?渐变色用哪个好?箭头是实线还是虚线?半小时过去了,画了删,删了画,最后憋出来一团乱麻...
后来有一天,我突然想到:大厂的技术文档里都是怎么画图的?于是我翻了一遍JDK、Spring、MySQL、Dubbo这些官网的架构图。
结果震惊了:几个矩形框+几条箭头线,就这?没渐变、没阴影、没3D,甚至有些图还很"简陋"。
那一刻我才明白:清晰 > 花哨,信息传达 > 视觉效果。
今天,我把这10个官方架构图拆解给你看,让你也能掌握专业绘图的精髓。
图表类型:分层架构图(Layered Architecture Diagram)
核心构成元素:
层次矩形框:表示不同的架构层次
模块组件:每层内部的功能模块
分隔线:明确层次边界
关键要点:
绘制步骤:
适用工具:Draw.io、Visio、PlantUML
JDK这么庞大复杂的系统,架构图居然这么简单:几个矩形框,用横线分开,写上模块名,加点背景色。就这?对,就这!重点是让人一眼看懂,不是炫技。
图表类型:流程交互图(Process Interaction Diagram)
核心构成元素:
图表结构:
配置元数据 ─┐
├──→ Spring容器 ──→ 可用的应用系统
POJO类 ────┘
关键要点:
绘制步骤:
适用工具:Lucidchart、Draw.io、Mermaid
经典的"输入-处理-输出"模式。你会发现这个套路到处都能用:用户请求→后端处理→返回结果;原始数据→清洗转换→入库...简单却万能。
图表类型:功能模块图(Function Module Diagram)
核心构成元素:
图表结构特点:
关键要点:
绘制步骤:
适用工具:Figma、Sketch、Canva、Draw.io
卡片式布局看着高大上,其实就是:画几个圆角矩形,加个图标或文字,用同样的配色。不会画图标?Draw.io有免费图标库,实在不行emoji也行( ️)。
图表类型:模块依赖图(Module Dependency Diagram)
核心构成元素:
图表结构:
┌─────────────────────────────────────────┐
│ Test │
├─────────────────────────────────────────┤
│ Web (WebSocket, Servlet, Portlet) │
├─────────────────────────────────────────┤
│ AOP / Aspects / Instrumentation │
├─────────────────────────────────────────┤
│ Data Access (JDBC, ORM, OXM, JMS, TX) │
├─────────────────────────────────────────┤
│ Core Container (Beans, Core, Context) │
└─────────────────────────────────────────┘
关键要点:
绘制步骤:
适用工具:Draw.io、PlantUML、Visio
经典的分层架构图:自底向上堆叠,每层一个矩形,粗线分隔。体现了依赖倒置原则。
图表类型:时间线图(Timeline Diagram)
核心构成元素:
图表结构特点:
关键要点:
绘制步骤:
适用工具:Office Timeline、Excel、Draw.io、Mermaid
时间线图的核心要素:一条轴线+关键节点+时间标注。适用于版本历史、项目里程碑、学习路线图等场景。
图表类型:序列图 + 角互图(Sequence Diagram + Role Interaction Diagram)
核心构成元素:
角色节点:
连接线类型:
数据流向:箭头表示调用方向
图表结构:
┌──────────┐ ┌──────────┐
│ Consumer │ │ Provider │
└─────┬────┘ └─────┬────┘
│ │
0. │ │ 1. register
subscribe ┌──┴───────┐
│ │ Registry │
2. notify └─────┬────┘
│ │
3. invoke ──────────────┘
│
4. count
│
┌────┴─────┐
│ Monitor │
└──────────┘
关键要点:
绘制步骤:
适用工具:PlantUML、Draw.io、WebSequenceDiagrams、Mermaid
序列图的精髓:数字序号+箭头连接+线条样式区分(实线/虚线)。适合展示任何有时序的调用流程。
图表类型:部署架构图(Deployment Architecture Diagram)
核心构成元素:
图表特点:
关键要点:
绘制步骤:
适用工具:Lucidchart、Draw.io、Cloudcraft、Diagrams.net
部署架构图的关键:虚线框圈区域+双向箭头示同步+对称布局。适用于多环境、主从结构、分布式部署等场景。
图表类型:组件层次图(Component Hierarchy Diagram)
核心构成元素:
图表结构:
┌─────────────────────────────────────────┐
│ Protocol Support Layer │
│ HTTP | WebSocket | SSL/TLS | ... │
├─────────────────────────────────────────┤
│ Codec Framework │
│ Marshalling | Protobuf | ... │
├─────────────────────────────────────────┤
│ Transport Services Layer │
│ Socket | Datagram | HTTP Tunnel │
├─────────────────────────────────────────┤
│ Core Layer │
│ Channel | EventLoop | ChannelFuture │
└─────────────────────────────────────────┘
关键要点:
绘制步骤:
适用工具:Draw.io、PlantUML、Visio
组件层次图与分层架构图相似,区别在于会详细列出每层的具体组件。适合展示框架或系统的内部结构。
图表类型:数据结构图(Data Structure Diagram)
核心构成元素:
图表结构:
Topic: MyTopic
┌─────────────────────────────────────┐
│ Partition 0 │
│ [0][1][2][3][4][5][6][7][8] │
├─────────────────────────────────────┤
│ Partition 1 │
│ [0][1][2][3][4][5] │
├─────────────────────────────────────┤
│ Partition 2 │
│ [0][1][2][3][4][5][6][7] │
└─────────────────────────────────────┘
关键要点:
绘制步骤:
适用工具:Draw.io、Excel、PlantUML、PPT
数据结构可视化:用格子+编号表示数据单元。适用于展示队列、数组、分区等线性数据结构。
图表类型:UML类图 / 概念关系图(UML Class Diagram / Concept Relationship Diagram)
核心构成元素:
实体类:Producer、Consumer、Broker、NameServer、Topic等
关系线:
多重性标注:1、*、1..*等
属性和方法:类内部的字段和操作
图表结构特点:
关键要点:
绘制步骤:
适用工具:PlantUML、StarUML、Visual Paradigm、Draw.io
UML类图/领域模型图:方框+连接线+关系标注。新手可以简化,只画类名和关系,省略属性和方法。
看完这10个官方案例,发现了吗?所谓"专业"的架构图,也就那样。现在我把这些套路总结出来,你拿走直接用。
不要上来就画! 先问自己一个问题:我想表达什么?
| 你想表达... | 用什么图 | 参考案例 | 核心元素 |
|---|---|---|---|
| 系统分了几层 | 分层架构图 | JDK、Spring、Netty | 矩形堆叠+分隔线 |
| 数据怎么流动 | 流程图 | Spring IoC | 框+箭头 |
| 服务怎么调用 | 序列图 | Dubbo调用链路 | 数字标号+箭头 |
| 有哪些模块 | 模块图 | Spring生态 | 卡片/圆角矩形 |
| 怎么部署的 | 部署图 | Dubbo多活 | 虚线框+双向箭头 |
| 数据结构是啥 | 数据图 | Kafka分区 | 小格子+编号 |
| 版本怎么迭代 | 时间线图 | MySQL历史 | 横线+点 |
| 概念有啥关系 | 关系图 | RocketMQ模型 | 框+连线 |
看到了吗? 8种场景,就这8种常用图。选对了类型,成功了一半!
选择恐惧症? 别纠结了,我只推荐3个,适合不同场景:
为什么推荐?
适合场景:
上手秘籍:
小技巧:
Ctrl+D快速复制Ctrl+G组合元素为什么推荐?
适合场景:
上手秘籍:
@startuml
' 画一个简单的序列图
Alice -> Bob: 你好
Bob -> Alice: 你好啊
@enduml
在线体验:www.plantuml.com/plantuml/
为什么推荐?
适合场景:
上手秘籍:
小技巧:
SmartArt快速生成常见图(流程、层次、循环)Alt+拖动快速复制Ctrl+Shift+G取消组合| 你的需求 | 推荐工具 | 理由 |
|---|---|---|
| 我是新手,想快速开始 | Draw.io | 免费、简单、够用 |
| 我要画技术文档 | PlantUML | 代码化,好维护 |
| 我要做项目汇报 | PPT/Keynote | 画完直接用 |
| 我要团队协作 | Draw.io | 可以存云端(Google Drive等) |
| 我就想画个草图 | PPT/纸笔 | 最快! |
记住:工具不重要,能画出来才重要!先用PPT画起来,再慢慢学其他工具。
万能组合:矩形(组件/模块)+ 箭头(调用/流向)+ 线条(边界/分层)
聚焦核心:画出关键组件、标清主要流程、连上重要关系。
不必纠结:颜色、阴影、字体等细节。
记住:清晰 > 美观,完成 > 完美!
Q1:我画的图不够美观?
重点是能说清楚问题,不是参加设计比赛。官网的图也很朴素。
Q2:需要学习UML吗?
大部分场景不需要。除非做架构师或公司有明确要求,简化版的图完全够用。
Q3:我的图和别人不一样?
没有标准答案!只要能清晰表达即可。同样是分层图,JDK、Spring、Netty的画法也各不相同。
Q4:应该画多详细?
看受众:给领导汇报画核心流程,给团队讲解画主要组件,技术文档可分多张图详细说明。
Q5:画图需要多长时间?
草图5分钟,正式图30分钟,精美图1-2小时。90%的场景30分钟足够。
看到这里,你应该明白了:大厂的架构图没那么神秘,无非是基础图形+清晰逻辑。
别光看,动手试试(10分钟):
然后呢?
记住:清晰 > 美观,完成 > 完美。Spring、JDK他们也是这么画的,凭什么你不行?
┌─────────────────────────────────────────────────────┐
│ 架构图绘制快速参考卡片 │
├─────────────────────────────────────────────────────┤
│ │
│ 想表达什么? 用什么图? 画什么? │
│ ───────────────────────────────────────────── │
│ 系统分层 分层架构图 □ 堆叠 │
│ 数据流动 流程图 □ → □ │
│ 服务调用 序列图 1→2→3 │
│ 模块列表 模块图 卡片 │
│ 部署情况 部署图 虚线框 │
│ 数据结构 数据图 格子 │
│ 版本历史 时间线图 ─●─●─ │
│ 概念关系 关系图 □──□ │
│ │
├─────────────────────────────────────────────────────┤
│ 核心秘诀: │
│ 1. 越简单越好(矩形+箭头就够了) │
│ 2. 保持一致(同类东西用同样画法) │
│ 3. 留白很重要(别挤在一起) │
│ │
├─────────────────────────────────────────────────────┤
│ 推荐工具: │
│ • Draw.io(免费、简单) │
│ • PlantUML(代码化) │
│ • PPT/Keynote(最熟悉的) │
│ │
├─────────────────────────────────────────────────────┤
│ 三步画图法: │
│ 1. 明确目标(30秒) │
│ 2. 选简单图形(1分钟) │
│ 3. 画完收手(5分钟) │
│ │
└─────────────────────────────────────────────────────┘
把这张卡片保存下来,下次画图时看一眼!
最后说两句:
画架构图这事,真没那么难。我当年被它吓唬住,觉得自己画不出"专业"的图,结果浪费了好多时间纠结。
后来发现,Spring、JDK这些大厂的图也就那样。矩形、箭头、清晰表达,就完了。
所以别想太多,打开工具,画一个矩形,你就已经开始了。
每个架构师,都是从第一个矩形开始的。
本文使用 markdown.com.cn 排版