当前位置: 首页 > news >正文

【工具分享】如何快速地、可视化地跟其他同学沟通复杂逻辑——用代码画流程图

版本 日期 修订人 描述
V1.0 2025/3/9 nick huang 创建文档
V1.1 2025/3/11 nick huang 添加「循环 或 遍历」章节

背景

需求澄清技术澄清的时候,我们需要给其他同学表述业务逻辑技术实现逻辑
这些逻辑,用文字往往冗长可读性差
这个时候,我们往往考虑用流程图来表达其中的逻辑。
流程图,因其可视化的特性,可读性确实提高了许多。
但画流程图的效率总是不如意,需要稍长的时间。
前段时间,使用了一款用代码生成流程图的工具,使用下来还不错。
故本文分享之。

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

下图描述的「查询字典数据(先查询Redis,如没命中查数据补偿)」的逻辑。
如果用纯文字描述,因涉及2个判断、2个读数操作、1个写数操作,描述起来会比较冗长、繁琐
而使用流程来可视化,则显得逻辑清晰:
通过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的插件,比如Java开发工具IntelliJ IDEA的插件PlantUML Integration

Tips
除了活动图,他的序列图我感觉也不错。
本文主要介绍活动图。

常用的基础语法及解析

开始节点、结束节点

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

@startuml
startstop
@enduml

效果:
开始节点、结束节点

常规的流程节点

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

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

效果:
业务操作节点

判断节点

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

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

效果:
判断节点-语法1

对于判断节点,如果判断完毕后执行完业务节点后程序结束。
我有时候倾向这么写,觉得可读性更高(虽然这样流程图有多个结束节点):

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

效果:
判断节点-语法2

给节点加上颜色

作用:给节点加上颜色
代码:

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

效果:
给节点加上颜色

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

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

效果:
给节点加上颜色-判断节点-红绿颜色

循环 或 遍历

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

判断在前面的代码示例:

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

效果:
循环-判断在前

判断在后的代码示例:

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

效果:
循环-判断在后

其他

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

最后

小弟不才,学识有限,如有错漏,欢迎指正哈。
如果本文对你有帮助,记得“一键三连”(“点赞”、“评论”、“收藏”)哦!

http://www.zskr.cn/news/56259.html

相关文章:

  • 2025年11月公布四川连体服、工作服、劳保服、残疾人服装定制源头厂家权威排名榜单及选购指南
  • 2025针阀式热流道厂家一览:技术特色与应用优势
  • 2025国内喷码机厂家排名综合实力榜
  • 2025质量可靠的义乌刺绣工厂推荐下,厂家品质深度分析
  • 2025 11月十大靠谱启闭机品牌盘点推荐,螺杆启闭机、卷扬启闭机、手动启闭机、手电两用启闭机 优势及应用分析
  • 目标检测算法——R-CNN系列
  • 时序数据库选型指南:为什么TDengine正在成为行业标准
  • 【CI130x 离在线】 C++一个类中调用另一个类的方法
  • ERP/MES与QMS的协同价值:为什么企业需要专业质量管理系统的深度解析
  • 详细介绍:数据结构八大排序:堆排序-从二叉树到堆排序实现
  • 2025 年 11 月机床厂家推荐排行榜,数控机床,智能数控机床,双头对接机床,6150机床,线轨机床,硬轨机床,重型机床公司推荐
  • 2025 年 11 月硬轨机床厂家推荐排行榜:高刚性硬轨机床,重切削硬轨机床,精密硬轨机床,数控硬轨机床公司推荐
  • QMS软件评估:从制造企业实践看标准产品的多维评估框架
  • 2025AI直播服务公司品质榜TOP5:智能交互技术,高清画质工艺解析
  • 2025 年 11 月线轨机床厂家推荐排行榜,精密线轨机床,高速线轨机床,数控线轨机床,重型线轨机床公司推荐
  • 自指生产力性格,自洽生产关系情调
  • 深入理解Linux网络 读书摘要
  • 过程方法如何重塑企业DNA
  • 2025 年 11 月实木双锁扣地板厂家推荐排行榜,双锁扣地板,实木地板,锁扣地板,实木双锁扣地板公司推荐,精选优质品牌与选购指南
  • ftp配置 linux
  • 豆包优化提示词
  • ftp连接linux服务器
  • ftp连接linux
  • 2025年长沙心理咨询机构排名TOP出炉,婚姻情感/焦虑/孩子厌学/青少年厌学/夫妻关系/线上/孩子网瘾/情绪不好心理咨询企业哪家好
  • 2025俄罗斯电商开店工具必备大盘点,错过血亏
  • 中山股权咨询公司到底靠不靠谱?2025专业推荐
  • 2025氨气吸收装置厂家甄选:各有专长的实力企业
  • 11.19与11.20笔记
  • CG100 D70F34xx/D70F35xx VW MQB Instrument Adapter: No Wire Cutting or Pin Lifting Required
  • 为什么你工作10年还是原地踏步?因为你没有掌握这5项核心能力