最近在看开源代码,有些项目的架构和执行逻辑都非常有学习、借鉴意义,因此想作图可视化记录下来。
在写文档的过程中,经常需要进行画图。虽然说现在有很多类似viso之类的可视化画图工具,但是还是要花费大量时间在拖拉组件上,效率十分低下。而Plantuml与markdown类似,本质上是也算一门可以快速画图的设计语言,学习起来也很方便,学完后直接书写、不需要拖拽就能做出规整的图,能大大节约在布局上细枝末节的时间。
此外,PlantUML在vscode, webstorm都有相关的插件可以使用。
在线体验网站有很多使用的样例介绍,在此我就不过多介绍了。本文会以我使用到的功能图来提醒说明一下一些语法规范和注意点。
时序图
-
注释
-
图上不显示的注释:
/' 注释内容 '/
-
图中显示的注释:
1
2
3
4
5
6
7
8
9
10# 左侧注释
Alice->Bob : hello
note left: this is a first note
# 右侧注释
Bob-->Alice : ok
note right: this is another note
# 跨越两个的注释
note over Alice, Bob #FFAAAA: This is displayed\n over Bob and Alice.
-
-
返回信息
1
2
3Alice -> Bob: Another authentication Request
# 同样可以写成Bob --> Alice, 只不过下面的更直观能看出是返回
Alice <-- Bob: Another authentication Response -
生命线的激活与撤销
- 关键字
activate
和deactivate
用来表示参与者的生命活动。一旦参与者被激活,它的生命线(柱子)就会显示出来。activate
和deactivate
适用于以上情形。destroy
表示一个参与者的生命线的终结。
- 给生命线上色语法:
activate Holder [#color]
▲.一个参与者在最外层只用于有一个生命线,但在大生命线中可以通过activate创建多个嵌套的小生命线,用deactivate跳出当前生命线
★因此,最好生命线的创建和退出同时写出,即写了一个
activate ?
就写一个deactivate ?
, 需要完成的内容在其中编写此外,需要注意的是,当前结果的返回应该在deactivate之前。比如
A <-- C: return
后才是deactivate C
,当然如果遵循了成对书写activate的习惯的话,就不存在这个问题了。 - 关键字
-
return关键字:以用于生成一个带有可选文本标签的返回信息。返回的点是导致最近一次激活生命线的点。但不建议使用,因为在维护修改的时候无法直观的看出到底是从哪返回哪。而是采取
A <-- B: return
来声明从B到A的虚线返回 -
分隔符: 通过使用
==
关键词来将你的图表分割成多个逻辑步骤。 -
声明参与者: 声明的顺序将是(默认的)显示顺序。
格式为:
类型 参与者名称 [as AliasName] [order orderVaalue] [#color]
可以选择的类型有:
actor
(角色)participant
(默认参与者)boundary
(边界)control
(控制)entity
(实体)database
(数据库)collections
(集合)queue
(队列)
1 | @startuml |
Author: Mrli
Link: https://nymrli.top/2022/04/04/PlantUML作图/
Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.