cesium 围绕_围绕PlantUML开发

cesium 围绕

Trenches的Integration Testing中 ,我大量使用了UML图。 到目前为止,我已经尝试并使用了许多UML编辑器。 我用过:

  • NetBeans附带的一个-过去时,他们将其删除
  • 微软Visio
  • Modelio-这可能是最好的之一
  • 我不记得的其他人

我得出以下结论:在大多数时候(始终读),我只需要记录API或要设计的内容,而无需遵循最新的UML规范。 宽松就足够了。

真正的UML编辑器不接受松散,毕竟是UML。 UML绘图工具就是这样-绘图工具,上面有一层。 所有这些都有以下问题:

  • 他们消耗很多资源
  • 它们具有自己的专用文件格式,您可以从中生成图像

我对图像感兴趣,但想将文件保存在该位置,以防万一我需要更新。

植物UML

然后我来到了PlantUML上 ,我感到很高兴。 PlantUML定义了一种简单的文本语法,可从中生成UML图图像。 到目前为止,我已经知道生成PlantUML图的3种方法:

  • 在线表格
  • Confluence插件
  • 在机器上安装东西

我使用了前2个,趋向于第一个,因为Confluence要求您保存以生成图像。 这对初始定义很有用。 但是,当不得不浏览全部〜60张图以更高的分辨率更新它们时,这会有些无聊。

因此,我决定围绕PlantUML开发一个批次,该批次将执行以下步骤:

  • 从文件夹中读取PlantUML描述文件
  • 通过在线表格从中生成图像
  • 将生成的图像保存在文件夹中

可以将批处理运行配置为应用所有描述文件共有的设置。 这批代码不仅有用,还应该教给我一些东西,并且对代码很有趣(请注意,有时这些目标是相反的)。

整体架构

我是Spring的狂热爱好者,但我希望基础完全不受任何依赖。

整体架构
plant草

定义非常基本的API。 它仅包含Exception和根接口,该接口扩展了Java 8的Function<I,O> 。 这种方式不仅仅是炒作,它还使用户类可以一起组成函数,这是我迄今为止在Java中看到的最大的组合潜力。

植物在线

使用JSoup库连接到联机服务器。 还实现了从文本文件读取并将结果写入图像文件的功能。

茄子批次

将所有内容调整为Spring Batch模型。

功能的力量

在Java 8中, Function<I,O>是通过其apply()方法apply()类型I的输入转换为类型O的输出的接口。 但是,借助Java 8的默认方法的强大功能,它还提供了compose()andThen()方法的实现。

功能

这样可以在流程管道中链接Function调用。 可以定义一个基本的JPLantUml实现,该实现将String应用于byte数组以进行简单的调用,而更复杂的实现则对File (描述)和…( File (结果图像)执行相同的操作。 但是,后者仅包含3个功能:

  1. 文件读取器,用于读取描述文件的内容,从FileString
  2. Stringbyte[]的PlantUML调用处理器byte[]
  3. 一个文件编写器,用于将图像文件从byte[]写入File

而且,我们已经有了函数组成。 这种细粒度的特性使我们可以对读取器和写入器功能进行一些单元测试,而无需进行任何复杂的模拟。

结果

这段代码的结果就是这个Github项目 。 它使您可以使用以下命令行:

java -jar ch.frankel.jplantuml.batch.Application globalParams="skinparam dpi 150; hide empty members"

这将从/tmp/in读取所有PlantUML文件,应用上述参数,并在/tmp/out生成结果图像文件。 可以使用标准Spring Batch属性覆盖来设置输入/输出文件夹。

翻译自: https://blog.frankel.ch/developing-around-plantuml/

cesium 围绕

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值