GoPlantUML,go代码到类图

前言

GoPlantUML 是一个开源工具,旨在简化从 Go 源代码生成 PlantUML 图的过程。使用 GoPlantUML,开发人员可以毫不费力地可视化其 Go 项目中的结构和关系,从而有助于代码理解和文档编写。通过解析 Go 源代码并生成 PlantUML 图,GoPlantUML 使开发人员能够为其代码库架构、包依赖关系和函数交互创建清晰简洁的可视化表示。该工具通过提供复杂 Go 项目的可视化概览,简化了文档编制过程并增强了团队成员之间的协作。

安装

先决条件
Golang 1.17 或更高版本

go get github.com/jfeliu007/goplantuml/parser
go install github.com/jfeliu007/goplantuml/cmd/goplantuml@latest

如果没有PlantUML插件,最好也安装一个,可以直接展示生成的内容。
也可以在线预览 https://www.plantuml.com/plantuml/uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000

用法

goplantuml [-recursive] 路径1 路径2 > diagram_file_name.puml
Usage of goplantuml:-aggregate-private-members : 显示私有成员的聚合。如果未使用-show- aggreations,则忽略。-hide-connections : 隐藏关系图中的所有连接-hide-fields : 隐藏字段-hide-methods : 隐藏方法-ignore string : 要忽略的文件夹列表,以逗号分隔-notes string : 要添加到图表中的注释列表,以逗号分隔-output string : 输出文件路径。如果省略,则默认为标准输出-recursive : 递归遍历所有目录-show-aggregations : 即使使用-hide-connections也会呈现公共聚合(默认情况下不呈现)-show-aliases : 即使使用-hide-connections也会呈现公共聚合(默认情况下不呈现)-show-compositions : 即使使用-hide-connections也显示组合-show-connection-labels : 在连接中显示标签以标识连接类型(例如扩展、实现、聚合、别名)-show-implementations : 即使使用-hide-connections也显示实现-show-options-as-note : 在使用该CLI运行的无明显选项的图中显示注释-title string : 生成图的标题-hide-private-members : 隐藏所有私有成员(字段和方法)

demo

package testingsupport//MyInterface only has one method, notice the signature return value
type MyInterface interface {foo() bool
}//MyStruct1 will implement the foo() bool function so it will have an "extends" association with MyInterface
type MyStruct1 struct {
}func (s1 *MyStruct1) foo() bool {return true
}//MyStruct2 will be directly composed of MyStruct1 so it will have a composition relationship with it
type MyStruct2 struct {MyStruct1
}//MyStruct3 will have a foo() function but the return value is not a bool, so it will not have any relationship with MyInterface
type MyStruct3 struct {Foo MyStruct1
}func (s3 *MyStruct3) foo() {}

执行生成uml

goplantuml ./ > test.puml

模型效果
image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1537540.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

软件安全、逆向分析、加密与解密--crackme2详解

本次使用到的软件有:PEiD、IDA、X32dbg 刚学逆向不久,可能有些地方会有错误,欢迎各位大佬指导 执行 运行程序 点击About 点击确定,输入如图数据 点击try Now 点击确定,回到主界面 点击Exit,退出 查壳&a…

猫头虎分享:Python库 Pandas 的简介、安装、用法详解入门教程

🐯猫头虎分享:Python库 Pandas 的简介、安装、用法详解入门教程 摘要 今天猫头虎带大家一起来探讨Python数据分析神器——Pandas的完整入门教程!本篇博客将深入介绍Pandas的功能,从安装到基础用法,再到常见问题解决&a…

Python 课程14-TensorFlow

前言 TensorFlow 是由 Google 开发的一个开源深度学习框架,广泛应用于机器学习和人工智能领域。它具有强大的计算能力,能够运行在 CPU、GPU 甚至 TPU 上,适用于从小型模型到大规模生产系统的各种应用场景。通过 TensorFlow,你可以…

FinOps三人行:共话FinOps云成本管理与AI的未来在线分享(文字+视频)

前言: 在数字化浪潮的推动下,云成本管理(Cloud Financial Management,简称FinOps)正逐渐成为企业关注的焦点。在2024年9月4日,一场关于云成本管理与人工智能(AI)未来的深入讨论在线…

体感魂斗罗-开篇

文章目录 前言新的目标Flag 前言 黑神话悟空大火,9月14,周鸿祎在抖音平台分享了360团队用两天的业余时间将《黑神话:悟空》爆改为体感游戏的过程,通过身体动作来控制游戏中的角色,实现更加自然和直观的操作方式。 把…

2025年最新大数据毕业设计选题-基于Spark分析相关

选题思路 回忆学过的知识(Python、Java、Hadoop、Hive、Sqoop、Spark、算法等等。。。) 结合学过的知识确定大的方向 a. 确定技术方向,比如基于Hadoop、基于Hive、基于Spark 等等。。。 b. 确定业务方向,比如民宿分析、电商行为分析、天气分析等等。。。…

2025年最新大数据毕业设计选题-基于Hive分析相关

选题思路 回忆学过的知识(Python、Java、Hadoop、Hive、Sqoop、Spark、算法等等。。。) 结合学过的知识确定大的方向 a. 确定技术方向,比如基于Hadoop、基于Hive、基于Spark 等等。。。 b. 确定业务方向,比如民宿分析、电商行为分析、天气分析等等。。。…

【bug】通过lora方式微调sdxl inpainting踩坑

报错内容 ValueError: Attempting to unscale FP16 gradients. 报错位置 if accelerator.sync_gradients:params_to_clip (itertools.chain(unet_lora_parameters, text_lora_parameters_one, text_lora_parameters_two)if args.train_text_encoderelse unet_lora_parameters…

Oracle 19c异常恢复—ORA-01209/ORA-65088---惜分飞

由于raid卡bug故障,导致文件系统异常,从而使得数据库无法正常启动,客户找到我之前已经让多人分析,均未恢复成功,查看alert日志,发现他们恢复的时候尝试resetlogs库,然后报ORA-600 kcbzib_kcrsds_1错误 2024-09-15T17:07:32.55321508:00 alter database open resetlogs 2024-09-…

深入理解IP地址分类及子网划分详解

在互联网时代,IP地址是网络通信的基础。无论是访问网站、发送电子邮件,还是进行数据传输,IP地址都扮演着至关重要的角色。本文将详细解析IP地址的分类及子网划分的原理,帮助你更好地理解网络架构及其应用。 一、什么是IP地址 IP…

电信创维光猫DT741超级密码

正常的D740系是创维系列光猫如:SK-D740 之类的超密获取办法-光猫/adsl/cable无线一体机-恩山无线论坛 但是我这个固件是DT741v1.0 我只能说很S -B,这个版本如果是1.02那就可以很轻松的去用通用办法解决,但是呢!还有办法就是用最传…

数据恢复精灵排行榜:四款优秀软件推荐!

无论是误删的照片,还是格式化硬盘后的重要文件,每一次意外的数据丢失都可能给我们带来不小的麻烦。在这样的背景下,“数据恢复精灵”应运而生,它们能够帮助我们找回那些似乎已经消失无踪的信息。下面,就让我们一起来看…

【 html+css 绚丽Loading 】 000052 璇玑转轮

前言:哈喽,大家好,今天给大家分享今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 &#x1f…

Cortex-A7的GIC(通用中断控制器):边沿触发和电平触发中断处理流程

0 资料 ARM Generic Interrupt Controller Architecture version 2.0 Architecture Specification1 边沿触发和电平触发中断处理流程 1.0 边沿触发和电平触发的区别 边沿触发(Edge-triggered) This is an interrupt that is asserted on detection of…

一分钟掌握 Excel VBA 技巧,轻松批量生成工资条,提高工作效率!

可能大家忽视了一点,Excel是我们日常办公中使用最多的工具,所以,学好Excel并加以运用,一定能提升你的工作效率,比如Excel VBA可以用代码实现自动化办公,下面举一个Excel VBA批量生成工资条的办公小案例。 …

关于 Visual Studio Code 如何插入自定义快捷方式

第一步:打开控制面板,也可以使用快捷键ctrlshiftp 然后点击命令面板 第二步:输入snippets搜索,选择配置用户代码片段 第三步:选择新建全局代码片段文件,然后输入文件名,这里我因为创建的是vue的…

鸿蒙媒体开发系列03——AVPlayer和AVRecorder概述

如果你也对鸿蒙开发感兴趣,加入“Harmony自习室”吧!扫描下方名片,关注公众号,公众号更新更快,同时也有更多学习资料和技术讨论群。 1、概述 本期我们初步讨论音视频资源的播放与录制相关能力 —— AVPlayer & AV…

数字经济指数合集

数字经济指数合集 随着信息技术的快速发展,数字经济已成为推动全球经济增长的重要力量。在中国,数字经济的发展尤为迅速,不仅促进了产业结构优化升级,还提升了社会治理效能。为了更好地衡量各地数字经济的发展水平,一…

工厂模式,策略模式,代理模式,单例模式在项目中的应用

项目背景: 首先这篇文章是总结了OJ项目和AI答题平台项目(和一点点的聚合搜索项目)中设计模式的文章 在项目中也用了很多次的设计模式,我感觉起来,这些设计模式的作用就是提高项目的扩展性和降低耦合性 工厂模式&…

视频语音转成文字用什么工具?这4款就很不错!

如今视频语音已经可以帮助我们在短时间内或去很多信息,在办公,学习教育,影视娱乐方面可以帮助我们高效的进行记录。当我们需要文字化的整理时,就会需要转换的工具。这片文章遍要罗列4款我在办公室用到的几款比较高效准确的视频语音…