程序员画图的正确姿势 | PlantUML(一)

3,420 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

1 背景

说明:如果你是visiopowerpointdraw.io亿图图示等绘图软件的重度用户,可能此篇文章并不适合你,因为这些所见即所得的绘图软件已经用视觉上的易用性俘获了你。爽久了,再想离开就多少有点困难了。在工程实践中,图片的作用是为了减少繁琐的文字,将一个流程讲的更直观,或者是将一个状态或数据呈现的更清晰,又或者是表现出复杂逻辑的层次结构等等。所见即所得的绘图方式,会让视觉干扰到人的绘图逻辑,人脑在视觉和逻辑中来回跳转,一是降低了绘图效率,二是很容易出错,如:线条少了,颜色不对等。所以这篇文章推荐使用所想即所得的绘图方式来画图。其大概过程是使用一种描述语言表达出想要绘制图形的逻辑,然后让工具软件渲染出具体图形。在整个绘制过程中,都不用去关注几何和视觉部分,只需关注于具体的图片内容逻辑。接下来是介绍采用这种所想即所得绘图方式的两个利器PlantUMLGraphviz

PlantUML是一个开源软件,允许用户采用纯文本语言创建图表。除了支持各种UML图,PlantUML还支持其它软件格式开发的图,甚至支持JSON和YAML文件的可视化。现将PlantUML支持的图表分两大类总结如下:

UML图表

  • 类图 (Class Diagram)
  • 组件图 (Component Diagram)
  • 部署图 (Deployment Diagram)
  • 对象图 (Object Diagram)
  • 用例图 (Use Case Diagram)
  • 活动图 (Activity Diagram)
  • 状态机图 (State Machine Diagram)
  • 序列图 (Sequence Diagram)
  • 时序图 (Timing Diagram)

其它格式图表

  • 网络图 (Network)
  • 线框图 (Wireframe)
  • 甘特图 (Gantt Diagram)
  • 思维导图 (MindMap)
  • 工作分解结构图 (Work Breakdown Structure)
  • JSON可视化 (Display JSON Data)
  • YAML可视化 (Display YAML Data)

不要被这些繁杂的图表所吓倒,这正是PlantUML功能强大的体现。在实际工作中,以实用为主、够用为度为原则,也没有必要面面精通。这些图用到哪一个,就马上学哪一个,都是触类旁通的。为了内容的完整性,本篇文章会对这些提到的图表绘制方式进行通篇讲解,如果觉得太多,可以进行有选择的阅读。

2 环境准备

2.1 配置环境

PlantUML本身是采用JAVA开发,所以其运行依赖于JAVA环境;为了更好编写PlantUML语法,还需要一个文本编辑器,本篇文章选择VSCode作为文本编辑器,并且用了一个PlantUML插件。所以环境配置需要完成如下三步:

  1. 安装Java环境,推荐Java8,也就是java1.8 版本(记得将安装完成的bin目录添加进系统环境变量);
  2. 安装VSCode;
  3. 安装VSCode插件PlantUML

2.2 快速使用

PlantUML快速使用流程总结如下:

  1. 创建:打开VSCode,新建一个带.puml后缀的文件,如:test.puml
  2. 写描述语言:复制如下描述语言,到test.puml中去;
  3. 预览:在test.puml文件中单击鼠标右键,在出现的鼠标菜单中点击预览光标位置图表,在文件右侧将会出现2.中描述语言的预览图;
  4. 导出:在test.puml文件中单击鼠标右键,在出现的鼠标菜单中点击导出当前文件图表,即可以导出各种格式的图片。导出的图片位置在test.puml文件的同级out目录中。
@startuml
PlantUML -> World: Hello World
World -> PlantUML: Hi, PlantUML
@enduml

PlantUMLgithub仓库路径如下:github.com/plantuml/pl…
PlantUML的在线练习网址为:plantuml.com

3 小结

本篇主要介绍了PlantUML的安装和一个小demoPlantUML的详细使用后面会陆续详细介绍。