强烈推荐,好用的时序图开源插件PlantUML!

简介: PlantUML这个开源时序图插件,它通过简单的语法和自动化的图形线条关联解决了传统画图软件中对齐困难、逻辑判断不易表示等问题,并提供了美观的图形和易于修改的特点,特别适合新入职场的开发者快速上手绘制高质量的时序图。

前言

每开发一个新需求,做系统设计时,系统时序图一般都少不了,你用的画图软件有没有给你带来一些问题呢?

1、比如不美观,图形线条不好对齐,比如下面这个:

image.png

这个图没有完全对齐,而且是我比较费劲去尽量对齐了,线条都需要自己一根根对齐,比较麻烦,画图的时间都用在对齐线条上去了。

image.png

2、逻辑判断选择不好表示,比如if/else,下面是redis两种复制模式,应该是根据配置决定的,但是没法有逻辑选择

image.png

3、没有循环处理

4、想给文字或者某个核心流程加上颜色

5、时序上的流程需要手动去编号,也很麻烦,比如下面的图

image.png

今天要介绍的这个插件软件,上面的问题都可以解决。如果你也遇到了上面的问题,强烈推荐你收藏用起来,看下面画的OpenFeign负载均衡的核心时序图。

image.png

PlantUML介绍与优势

PlantUML是一个开源项目,官网:https://plantuml.com/sequence-diagram

它既支持常用的uml图,也支持非uml图,比如思维导图,我最常用的就是时序图

我觉得它有如下优点:

1、语法简单,快速上手,可视化制作

image.png

2、图形线条关联是自动关联的,不需要手动关联

3、支持循环if/else等逻辑表示

4、制作的图形更美观和和谐

5、修改比较容易,有些制作完成导出成图片了不好改,PlatUML可以改

PlantUML案例

1、声明参与者

image.png

2、发送消息和返回消息

image.png

3、if/else表示

image.png

4、关键流程加颜色

image.png

5、自动编号

image.png

具体的画图代码:

autonumber
actor 普通用户 as person
participant 用户服务 as user
participant 订单服务 as order
participant 支付服务 as pay

person -> user:登录系统
person<--user: 登录结果

alt 登录失败
person<--user: 提示失败,不可下单
loop 用户重试
person -> user:登录系统
person<--user: 登录结果
end

else #Gold 登录成功
person->order:下单
person<--order:下单成功
person->pay:支付
person<--pay:支付成功
end

@enduml

PlantUML总结

使用 PlantUML 创建序列图非常简单。这种易用性主要归功于其语法的用户友好性,既直观又易记。

你如果是一个新入职场的朋友,掌握这个工具也能画出很美观的时序图,是不是会很开心呢?刚工作时候,我是比较困惑的?没有找到好的画图软件,直到知道了PlantUML,还是很好用的,不仅可以在intellij idea里面使用,confluence里面也有插件支持的,在公司办公工作中也用的到。

这个文章如果对你有帮助,收藏关注我们,一起学习技术干货,学习好用的工具。

image.png

相关文章
|
程序员 uml
【程序员小知识】使用PlantUML画UML(下) 时序图
【程序员小知识】使用PlantUML画UML(下) 时序图
890 0
|
消息中间件 缓存 NoSQL
谈谈高并发系统的设计方法论
设计 `高并发` 系统,就是要让该系统保证它 `整体可用` 的同时,能够尽可能多的 `处理很高的并发用户请求`,能够 `承受很大的负载流量冲击`。
1597 6
|
设计模式 前端开发 关系型数据库
【DDD】全网最详细2万字讲解DDD,从理论到实战(代码示例) 3
【DDD】全网最详细2万字讲解DDD,从理论到实战(代码示例)
5802 2
|
移动开发 JavaScript 前端开发
画出属于你的最漂亮的数字时序图—WaveDrom
WaveDrom是一个免费开源的在线数字时序图渲染引擎。它可以使用JavaScript, HTML5和SVG来将时序图的WaveJSON描述转成SVG矢量图形,从而进行显示。WaveDrom可以嵌入到任何网页中。WaveDrom编辑器可在浏览器中运行,也可以安装在系统上,渲染引擎可以嵌入到任何网页中。
2781 0
画出属于你的最漂亮的数字时序图—WaveDrom
|
开发工具 数据安全/隐私保护 git
Git报错:remote: HTTP Basic: Access denied的解决方法
Git报错:remote: HTTP Basic: Access denied的解决方法
3419 0
Git报错:remote: HTTP Basic: Access denied的解决方法
|
6月前
|
人工智能 关系型数据库 API
Higress MCP 服务管理,助力构建私有 MCP 市场
Higress MCP 服务管理模块通过 OpenAPI、数据库及直接路由等方式快速构建 AI Agent 可调用的 MCP 服务,支持认证授权、流量控制等能力,助力企业高效打造私有化 MCP 市场。
|
10月前
|
设计模式 Java uml
课时107:时序图
课时107介绍了时序图的描述与设计。时序图用于展示代码执行流程,如Java程序中接口IMessage、类MessageImpl及Factory的调用顺序。通过Power Designer创建UML Sequence Diagram,定义类操作结构并绘制消息传递路径,清晰呈现工厂模式下对象实例化和方法调用的过程。时序图帮助理解程序逻辑,适用于项目开发中的流程分析与文档记录。
424 1
|
设计模式 IDE 数据可视化
UML中类图的介绍与使用
类图是 UML 中用于展示系统静态结构的重要工具,包括类、接口及其关系。类图有助于系统可视化、团队沟通、发现设计问题、文档化系统和辅助开发工具。类图的三大元素是类、接口和关系,其中关系又细分为关联、聚合、组合、继承、实现和依赖。类图在设计模式学习和实际开发中非常重要,许多现代 IDE 都支持从类图生成代码或从代码生成类图。
|
设计模式 Java 关系型数据库
【阿里规约】阿里开发手册解读——命名规范篇
本文中所有代码命名规范遵循《阿里规约》,从包名、类名、变量名等角度展开,详细阐述测试类、枚举类、数组、布尔型变量、方法等元素的命名规范。
【阿里规约】阿里开发手册解读——命名规范篇
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
2289 1