这是我参与8月更文挑战的第10天,活动详情查看:8月更文挑战
PlantUML简单来说是一个画图的编程语言,虽然它并没有自称为一门编程语言,而是在官网简单地介绍自己为一个开源项目,支持快速绘图。从本质上说PlantUML是一个DSL,是一种命令式语言,解决的问题就是快速画出我们平时写文章需要用到的各种图。
从名称上看,好像就是那个陈旧的UML图,用来表示类的继承,实现,依赖关系。但这种图自从我工作以来就很少见到有人正经在wiki中画过,这有很多原因。一是现在大多数项目都在用微服务,使用spring boot可以快速搭建并开发项目,几乎用不到复杂的依赖关系,每个项目也维持在较小的规模,很少有人去写接口与抽象类了。这种快速迭代的开发模式,自然就淘汰了UML这种工具,以为类之间的关系太简单了,就是spring bean的依赖关系。二是,懒。写文档的习惯难能可贵,画UML图就更不可能了。
但今天要说的PlantUML不只是一个画类图的工具,除了那种画的随心所欲、不知所以的架构图,它几乎可以支持任何常用的图。但又有人说了,画图工具不要太多,drawIO,processon都是很好的画图工具啊。确实,但很少有人可以规范的画图,都是一顿乱画,模块间的依赖关系也十分凌乱。PlantUML最大的优势是按照既定的标准和规范,快速生成图,不用调整格式,不用设计布局,生成的一定是规范且合理的一张图。写几行代码就能生成一张有用的图,也是程序员的福音。
下面就开始入门吧,首先从安装开始。
- 首先你的电脑必须有Java,Java怎么按照就略过了。
- 安装Graphviz,PlantUML支持的大部分图都需要Graphviz的支持这里是安装教程,很简单执行一行命令就好了。
- 使用合适的工具开始画图,我推荐vscode安装plantuml插件,当然jetbrains的产品也是支持plantuml的插件的
以上都安装完成之后,就开始画第一张图了,可惜这里不是hello world了。
@startuml
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
Alice -> Bob: Another authentication Request
Alice <-- Bob: Another authentication Response
@enduml
然后Ctrl+Shift+p打开命令面板,执行预览。会看到右边的窗口出现这张图。
Ok,第一张图就画完了。下篇开始我们将解析plantuml的语法,并且会画更多的图。