PlantUML:将图作为代码

本文介绍了PlantUML工具,它允许开发者通过编写文本创建UML图和线框图,结合了代码的可读性和版本控制优势。PlantUML支持多种图表类型,如序列图、用例图和组件图等,适用于版本控制系统,便于代码审查和分享。文章通过一个餐厅点餐系统的示例展示了如何使用PlantUML创建序列图。
摘要由CSDN通过智能技术生成

现在,所有“作为代码”的事物都风行一时。 除了程序外,我们可以用代码表示什么? 首先,基础架构即代码正变得越来越流行-足以看到Google趋势图,就可以看出它正在逐年稳步攀升。 TerraformOpenShiftCloudFormationHelmPuppet和许多其他工具是这一趋势的代表。

但是,本文将完全处理其他问题:将图作为代码。 为什么呢 好吧,代码比图有一些优势:

  • 这是可读的。 好吧,至少是好的代码。 尽管说一张图片胜过一千个单词,但很多人比其他任何人都能更好地吸收书面信息。
  • 它很紧凑。 文本文件的大小通常比任何图片小一倍。 因此,将其存储在存储库中要容易得多。
  • 版本控制。 您可以将图片保留在版本控制下,但是它们是二进制文件,因此更改变得模糊。 如果您在回购中更改图片,人们将不知道更改的含义,直到他们签出该回购并查看图片。 差异本身根本没有多大帮助。
  • 这很容易。 键入“服务A使用服务B”要比在图表上画这些框,贴标签,用箭头连接它们容易得多。特别是对于可能受到艺术挑战的人。

但是事实证明,有一个工具可以让您充分利用两者的优势。 这个工具是PlantUML

PlantUML允许基本上编写文本,该文本会自动转换为图表。 它具有自己非常简单的DSL,并允许使用许多UML图类型:

  • 顺序图;
  • 用例图;
  • 类图;
  • 活动图;
  • 组件图;
  • 状态图;
  • 对象图;
  • 部署图;
  • 时序图。

此外,它还支持一些非常酷的非UML图,例如用于UI设计的线框图 ,这似乎是一个非常有趣的概念。

如何使用PlantUML? 实际上,有一百种方式。 它可以作为单独的工具在本地安装 ,也可以作为基本上所有东西的插件 安装 (Wiki,论坛,文本编辑器,IDE等),请检查链接和机会,您将至少找到几种已经在使用的替代品。 。 因为我选择的工具是IntelliJ IDEA,所以这是我使用的插件

让我们尝试一个序列图,因为它通常会让我很头疼。 (所有需要对齐的泳道和积木,都不要让我开始。) 我们正在设计一个自动化的餐厅点餐系统 (没有服务员,只需要平板电脑就可以点菜-知道我的意思吗?),并且需要一只鸟的基本流程视图。 我们有一个客户,他从菜单下订单,对订单进行检查的库存,以及能够更正订单的反馈系统。 我们将加入一些队列以使该过程异步(只是因为我们很酷)。

看起来如何? 大概是这样的。

我们可以清楚地看到,我们有一个参与者- 客户 ,四个参与者MenuServiceInventoryService和两个用于请求和响应的队列-以及一个数据库来跟踪所有这些情况。 IDE插件立即将代码转换为以下图片:

我该怎么办? 我可以将其导出为图片并显示给任何人。 此外,我可以使用在线演示服务器 ,只需将我拥有的全部代码复制并粘贴到那里的文本框中,然后单击Submit 。 演示服务器将URL返回到生成的图:

此URL可用于将图片放入您的项目自述文件,融合Wiki或任何网页中。 有趣的是,图片本身并未存储在演示服务器上,因为所有信息已经被编码到URL中。 因此,仅存储URL。

我认为该工具非常适合使用和探索。 这些“图表”非常适合在源代码控制下存储,因为所有更改只需滚动到diff即可立即读取。 它比绘制和重新定位所有这些图块和泳道快得多。

如果您喜欢这个主意,请务必尝试一下该工具! 我在这里显示的只是一个非常基本的示例,但是我想可以做很多事情。 该网站还提供了一个常见问题解答,以帮助人们解决可能出现的一些问题(IDE插件我没有经历过,但是由于该工具具有很多集成而我没有尝试过)。

并非我们所有人都是艺术家,但伟大的事情是,并非所有人都必须如此。

翻译自: https://www.javacodegeeks.com/2019/02/plantuml-diagrams-code.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值