首页>>后端>>Golang->Golang 可视化工具之go

Golang 可视化工具之go

时间:2023-11-30 本站 点击:0

一.背景

日常我们会看一些开源项目,或者想看自己写的代码可视化,在golang中可以利用工具实现,go-callvis是以图片的形式展示了go程序的调用关系,在看复杂项目时尤其有用。

二.go-callvies 简介

2.1 工具简介

Go-callvis 是一个开发工具,用于帮助使用交互式视图可视化 Go 程序的调用图。

此工具的目的是为开发人员提供一个可视化的 Go 程序概览,使用来自调用图的数据及其与包和类型的关系。这在大型项目中特别有用,因为这些项目的代码复杂度要高得多,或者只是简单地试图理解其他人的代码。

2.2 特性

支持go mod

程序中的特定焦点包

点击软件包,使用交互式查看器快速切换焦点

按类型按包和/或方法分组函数

过滤器包到特定的导入路径前缀

忽略标准库中的函数

省略各种类型的函数调用

三.安装

go get安装

$goget-ugithub.com/ofabry/go-callvis

源码编译安装

$gitclonehttps://github.com/ofabry/go-callvis.gitcdgo-callvis&&makeinstall

四.输出示例

它运行指针分析来构造程序的调用图,并使用数据生成点格式的输出,可以使用 Graphviz 工具进行渲染。

五.安装

goget-ugithub.com/ofabry/go-callvis#orgitclonehttps://github.com/ofabry/go-callvis.gitcdgo-callvis&&makeinstall

六.使用

go-callvis [可选参数] <包路径>

1)使用浏览器交互展示

默认情况下,HTTP服务器在http://localhost:7878/上侦听,请使用选项-http="ADDR:PORT"更改HTTP服务器地址。

2)静态输出

要生成单个输出文件,使用选项-file=<file path>选择输出文件目标。

输出格式默认为svg,使用选项-format=<svg|png|jpg|…>选择其他输出格式。

3)其他参数

-debug输出详细日志-filestring以文件新式输出结果,并将忽略server交互模式-focusstringFocusspecificpackageusingnameorimportpath.(default"main")-formatstring输出文件的格式[svg|png|jpg|...](默认"svg")-graphviz使用Graphviz渲染图像-groupstring分组功能,根据包与/或类型分组[pkg,type](用逗号分开)(默认"pkg"),例如-grouppkg,type-httpstringHTTP服务地址(默认":7878")-ignorestring忽略包含给定前缀的包路径(用逗号分开)-includestring包含具有给定前缀的包路径(用逗号分开)-limitstringLimitpackagepathstogivenprefixes(separatedbycomma)-minlenuintMinimumedgelength(forwideroutput).(default2)-nodesepfloatMinimumspacebetweentwoadjacentnodesinthesamerank(fortalleroutput).(default0.35)-nointer忽略对未导出函数的调用。-nostd忽略标准库的调用-skipbrowser跳过打开浏览器-tagsbuildtagsalistofbuildtagstoconsidersatisfiedduringthebuild.Formoreinformationaboutbuildtags,seethedescriptionofbuildconstraintsinthedocumentationforthego/buildpackage-tests包含测试代码-version显示版本号1)解析main包go-callvis-skipbrowser-nostd./2)解析testPkg包go-callvis-grouppkg,type-focustestPkggithub.com/项目具体路径

简单示例

$go-callvis-formatpng-grouppkg,type-focusgithub.com/kaliarch/linux_agent/cmd/appgithub.com/kaliarch/linux_agent2021/08/1811:22:12httpservingathttp://localhost:78782021/08/1811:22:21convertingdottopng..2021/08/1811:22:22servingfile:/var/folders/wn/367g1v9n1bv0sg1k8qldzym80000gn/T/go-callvis_export.png

参考链接

https://github.com/TrueFurby/go-callvis


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