还在用 Visio、draw.io 一点点拖组件?还在改架构图时"线全乱了"?现在,越来越多开发者开始用一种"写代码生成架构图"的方式来画图。它叫 D2,一个由 Go 编写、开源、现代化的 Diagram DSL。

你只需要写:
d2
api -> service -> mysql
它就能自动生成一张漂亮的架构图。
更离谱的是:
- 支持自动布局
- 支持主题美化
- 支持 SVG / PNG / PDF 导出
- 支持 VSCode
- 支持实时预览
- 支持代码版本管理
- 支持大型系统架构图
- 甚至还能"手绘风"
D2 是什么?
Terrastruct 开源的一个现代化 Diagram Language(图形脚本语言)。
项目地址:
官方介绍:
"A modern diagram scripting language that turns text to diagrams."
简单说你写文本它自动生成图。
D2 如何安装?
安装极其简单。
Go 安装
如果你本身就是 Go 开发者:
bash
go install oss.terrastruct.com/d2@latest
Linux / MacOS
直接:
bash
curl -fsSL https://d2lang.com/install.sh | sh -s --
安装完成后 d2 --version 能够获取到版本信息说明安装成功了
Windows 安装
推荐:
- Scoop
- Chocolatey
- 或下载 Release
也可以直接用 Go 安装。
第一个 D2 示例
创建 hello.d2 文件,内容:
d2
user -> api
api -> redis
api -> mysql
执行 d2 hello.d2 会自动生成 hello.svg 文件
开启实时预览
这是最爽的模式。
d2
d2 --watch hello.d2
然后浏览器自动打开,你改代码图自动刷新,开发体验非常丝滑。
微服务架构
d2
direction: right
vars: {
d2-config: {
theme-id: 300
}
}
Client: {
shape: person
}
Client -> gateway
gateway -> user-service
gateway -> order-service
gateway -> pay-service
user-service -> mysql
order-service -> mysql
pay-service -> redis

D2 的高级玩法
真正厉害的地方来了。
1. 自定义 Shape
d2
db: {
shape: cylinder
}
数据库会自动变成圆柱体。
2. 人物节点
d2
user: {
shape: person
}
3. 云服务图标
支持:
- AWS
- Kubernetes
- 网络结构
- 云原生组件
4. 多层嵌套
d2
cloud: {
vpc: {
subnet: {
api
}
}
}
可以直接表达 层级架构。
5. 手绘风
d2
vars: {
d2-config: {
sketch: true
}
}
6. 主题系统
官方内置很多主题,比如:
makefile
theme-id: 300
可以快速切换:
- 科技风
- 深色风
- 极简风
- 手绘风
官方示例图:

结语
过去程序员画图像美工,现在程序员画图终于像写代码了。而 D2正在把"架构图"真正带入工程化时代。
如果你:
- 讨厌拖图
- 讨厌改布局
- 想把图纳入 Git
- 想让 AI 自动生成架构图
- 想做真正可维护的系统文档
那 D2 非常值得你认真试试。