问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

用代码画流程图:PlantUML快速可视化复杂逻辑

创作时间:
作者:
@小白创作中心

用代码画流程图:PlantUML快速可视化复杂逻辑

引用
CSDN
1.
https://blog.csdn.net/user020/article/details/146131291

在需求澄清和技术沟通中,如何更高效地表达复杂逻辑?本文将介绍一款通过代码生成流程图的工具——PlantUML,帮助你更清晰、直观地展示业务逻辑和技术实现方案。

背景

在进行需求澄清或技术沟通时,我们常常需要向他人解释复杂的业务逻辑或技术实现方案。单纯的文字描述往往冗长且可读性差,而流程图因其可视化特性,能够显著提升表达的清晰度。然而,传统的流程图绘制工具效率较低,耗时较长。本文将介绍一款通过代码生成流程图的工具——PlantUML,帮助你更高效地完成这一任务。

文字描述与流程图描述的对比

下图描述的是"查询字典数据(先查询Redis,如没命中则查询数据库)"的逻辑。如果用纯文字描述,因涉及多个判断和数据操作,会显得冗长繁琐。而使用流程图进行可视化,则显得逻辑清晰:

这是用PlantUML画的,代码如下:

@startuml
start
:从Redis中查询指定字典数据;
if (判断查得的Redis字典数据是否为空?) then (不为空)
#palegreen:返回数据;
stop
else (为空)
:从数据库查询指定字段数据;
if (判断查得的数据库字典数据是否为空?) then (为空)
#pink:提示:没有找到数据;
stop
else (不为空)
:写入Redis,缓存起来,供下次快速查询;
#palegreen:返回数据;
stop
@enduml

PlantUML简介

PlantUML官网:https://plantuml.com/zh/

流程图,在其官网被描述为"活动图"。它提供了Web在线编辑器,但作者更习惯使用IDE插件,例如在IntelliJ IDEA中使用"PlantUML Integration"插件。

除了活动图,PlantUML的序列图功能也很强大。本文主要介绍活动图。

常用的基础语法及解析

开始节点、结束节点

开始节点:实心圆点
结束节点:半实心圆点

代码示例:

@startuml
start
stop
@enduml

效果:

常规的流程节点

作用:用于表示常规流程操作,不涉及条件判断
形状:圆角长方形

代码示例:

@startuml
start
:业务操作;
stop
@enduml

效果:

判断节点

作用:用于表示条件判断
形状:菱形

代码示例:

@startuml
start
if (今天天气是否晴朗?) then (不晴朗)
:请带上雨伞哦!;
else (晴朗)
:去郊游吧!;
endif
stop
@enduml

效果:

对于判断节点,如果判断完毕后执行完业务节点后程序结束,可以这样写:

@startuml
start
if (今天天气是否晴朗?) then (不晴朗)
#pink:请带上雨伞哦!;
stop
else (晴朗)
#palegreen:去郊游吧!;
stop
@enduml

效果:

给节点加上颜色

作用:给节点加上颜色

代码示例:

@startuml
start
#palegreen:业务操作;
stop
@enduml

效果:

有时候,流程判断后,有时候有成功或失败的结果导向,给节点加上相应的"红绿灯"颜色,可读性更高:

@startuml
start
if (今天天气是否晴朗?) then (不晴朗)
#pink:请带上雨伞哦!;
stop
else (晴朗)
#palegreen:去郊游吧!;
stop
@enduml

效果:

循环 或 遍历

作用:用于表示循环、遍历
形状:循环是否结束的判断、返回的箭头、循环结束的箭头

判断在前面的代码示例:

@startuml
start
while (遍历“userLIst”是否结束) is (未结束)
    :操作1;
    :操作2;
endwhile (结束)
    :后续操作;
stop
@enduml

效果:

判断在后的代码示例:

@startuml
start
repeat :循环开始的那个业务操作;
:操作2;
:操作3;
repeat while (遍历“userLIst”是否结束)
stop
@enduml

效果:

其他

本文只列举了作者经常使用的语法。PlantUML的活动图还有其他特性和语法,可以上官网的文档查阅、使用。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号