学习使用时序图并集成到GitLab

简介: gitlab集成

本文将简单的介绍的PlantUML的使用。

最近有一个需求, 扩展GitLab功能将文本图表自动转换成图片 ,在GitLab官方文档中,发现 kroki可以解决这个问题。

Kroki是什么

kroki是一个开源的免费工具,可以将基于文本的图表描述自动转为图片,支持私有化部署,当然官方也提供了在线服务。

kroki支持多种图表API:

Kroki provides a unified API with support for BlockDiag (BlockDiag, SeqDiag, ActDiag, NwDiag, PacketDiag, RackDiag), BPMN, Bytefield, C4 (with PlantUML), Ditaa, Erd, Excalidraw, GraphViz, Mermaid, Nomnoml, Pikchr, PlantUML, SvgBob, UMLet, Vega, Vega-Lite, WaveDrom... and more to come!

如何安装

通过docker安装

docker run -d --name kroki -p 18080:8000 yuzutech/kroki:0.15.1

然后即可通过ip:18080访问,安装好,默认将支持以下不同图表的API。

使用方式

安装完成之后,即可通过curl或者http命令测试

  • curl
curl https://$ip:$port/graphviz/svg --data-raw 'digraph G {Hello->World}'
  • http
apt-get install httpie
http https://$ip:$port diagram_type='graphviz' output_format='svg' diagram_source='digraph G {Hello->World}'

具体可以参考kroki官网提供的诸多图表API的案例

如何集成到GitLab服务

  1. On the top bar, select Menu > Admin.
  2. Go to Settings > General.
  3. Expand the Kroki section.
  4. Select Enable Kroki checkbox.
  5. Enter the Kroki URL.

配置完成之后,即可在Gitlab支持markdown的地方使用。例如issue、README.md等。

敲敲黑板!重点来了,环境搞定了,那图表应该怎么画呢?这里就要介绍另外一款开源的UML绘图工具了: PlantUML

PlantUML是什么

plantuml支持哪些图表

PlantUML是一个开源项目,支持快速绘制以下图表:

同时还支持以下非UML图:

可以生成PNG,SVG 或 LaTeX 格式的图片,也可以生成 ASCII艺术图(仅限时序图),这里可以通过在线示例服务器自己动手试试。例如:

这里针对以上时序图简要介绍一下:

  • title可以用于指定UML图的标题;
  • 通过actor可以声明人形的参与者;
  • 通过participant可以声明普通类型的参与者;
  • 通过as可以给参与者取别名;
  • 通过->可以绘制参与者之间的关系,虚线箭头可以使用-->
  • 在每个参与者关系后面,可以使用:给关系添加说明;
  • 通过autonumber我们可以给参与者关系自动添加序号;
  • 通过activatedeactivate可以指定参与者的生命线。
以上参考macrozheng的博客文章

图表中使用的是IDEA的PlantUML智能提示插件: PlantUML integration,可以在插件->应用市场安装即可。通过代码快速的绘制时序图、流程图无疑在日常开发中比一些复杂的需要在Processon绘制的更快捷和高效。

其他更多图表的绘制使用文档可以参考PlantUML的官网参考学习即可。中文版,讲解的很清楚。

图表编辑工具

在线版

离线版

资料分享

微信订阅号内回复"uml"获取PlantUML Language Reference Guide PDF

相关文章
|
15天前
|
机器学习/深度学习 算法 前端开发
机器学习中的集成学习(二)
**集成学习概述** 集成学习通过结合多个弱学习器创建强学习器,如Bagging(Bootstrap Aggregating)和Boosting。Bagging通过随机采样产生训练集,训练多个弱模型,然后平均(回归)或投票(分类)得出结果,减少方差和过拟合。Boosting则是迭代过程,每个弱学习器专注于难分类样本,逐步调整样本权重,形成加权平均的强学习器。典型算法有AdaBoost、GBDT、XGBoost等。两者区别在于,Bagging模型并行训练且独立,而Boosting模型间有依赖,重视错误分类。
|
15天前
|
机器学习/深度学习 人工智能 自然语言处理
机器学习中的集成学习(一)
集成学习是一种将多个弱学习器组合成强学习器的方法,通过投票法、平均法或加权平均等策略减少错误率。它分为弱分类器集成、模型融合和混合专家模型三个研究领域。简单集成技术包括投票法(用于分类,少数服从多数)、平均法(回归问题,预测值取平均)和加权平均法(调整模型权重以优化结果)。在实际应用中,集成学习如Bagging和Boosting是与深度学习并驾齐驱的重要算法,常用于数据竞赛和工业标准。
|
15天前
|
机器学习/深度学习 人工智能 算法
AI - 集成学习
集成学习是一种机器学习策略,它通过组合多个模型(称为基学习器)来创建一个更强大、更稳健的预测模型。基学习器可以是不同类型或同类型的模型,如决策树、SVM、神经网络等。
|
15天前
|
机器学习/深度学习 算法 前端开发
集成学习思想
**集成学习**是通过结合多个预测模型来创建一个更强大、更鲁棒的系统。它利用了如随机森林、AdaBoost和GBDT等策略。随机森林通过Bootstrap抽样构建多个决策树并用多数投票决定结果,增强模型的多样性。Boosting,如Adaboost,逐步调整样本权重,使后续学习器聚焦于前一轮分类错误的样本,减少偏差。GBDT则通过拟合残差逐步提升预测精度。这些方法通过组合弱学习器形成强学习器,提高了预测准确性和模型的鲁棒性。
|
18天前
|
机器学习/深度学习 算法 Python
【机器学习】集成学习在信用评分领域实例
【机器学习】集成学习在信用评分领域实例
39 1
|
18天前
|
机器学习/深度学习 算法 数据挖掘
【机器学习】Voting集成学习算法:分类任务中的新利器
【机器学习】Voting集成学习算法:分类任务中的新利器
20 0
|
18天前
|
机器学习/深度学习 算法 大数据
【机器学习】集成学习:强化机器学习模型与创新能的利器
【机器学习】集成学习:强化机器学习模型与创新能的利器
12 0
|
4天前
|
消息中间件 Java 测试技术
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
11 1
|
6天前
|
监控 负载均衡 Java
Spring Boot与微服务治理框架的集成
Spring Boot与微服务治理框架的集成
|
6天前
|
负载均衡 Java Nacos
Spring Boot与微服务治理框架的集成策略
Spring Boot与微服务治理框架的集成策略

相关实验场景

更多