Go Callvis是啥

Go-callvis是一种golang代码可视化工具,用于帮助使用交互式视图可视化Go程序的调用图,安装命令“go get -u github.com/ofabry/go-callvis”。Go-callvis工具的目的是为开发人员提供一个可视化的Go程序概览,使用来自调用图的数据及其与包和类型的关系。

Go Callvis是啥

本教程操作环境:windows7系统、GO 1.18版本、Dell G3电脑。

一、go-callvis介绍

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

特性

支持go mod

程序中的特定焦点包

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

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

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

忽略标准库中的函数

省略各种类型的函数调用

二、运行依赖

Go 1.13+Graphviz (optional, required only with -graphviz flag)

三、安装

go get -u github.com/ofabry/go-callvis

登录后复制

或者是

git clone https://www.php.cn/link/bb2a2fcd8984d12d9efcfcd75a7f7b38.gitcd go-callvismake install

登录后复制

安装好的 go-callvis 可执行文件会在$GOPATH/bin目录下

四、使用方法

运行go-callvis -h可以列出所有受支持的选项,如下

Usage of go-callvis:  -debug    Enable verbose log.    输出详细日志  -file string    output filename - omit to use server mode    以文件新式输出结果,并将忽略server交互模式  -cacheDir string    Enable caching to avoid unnecessary re-rendering.    启用缓存以避免不必要的重新渲染。  -focus string    Focus specific package using name or import path. (default "main")    关注特定的程序包,默认为“main”包  -format string    output file format [svg | png | jpg | ...] (default "svg")    输出文件的格式,[svg | png | jpg | ...],默认为svg  -graphviz    Use Graphviz's dot program to render images.    使用Graphviz渲染图像  -group string    Grouping functions by packages and/or types [pkg, type] (separated by comma) (default "pkg")    分组功能,根据包 与/或 类型分组 [pkg, type] (用逗号分开) (默认 "pkg"),例如 -group pkg,type  -http string    HTTP service address. (default ":7878")        HTTP 服务地址 (默认 ":7878")  -ignore string    Ignore package paths containing given prefixes (separated by comma)        忽略包含给定前缀的包路径(用逗号分开)  -include string    Include package paths with given prefixes (separated by comma)        包含具有给定前缀的包路径 (用逗号分开)  -limit string    Limit package paths to given prefixes (separated by comma)    将包路径限制为给定的前缀(以逗号分隔)  -minlen uint    Minimum edge length (for wider output). (default 2)        最小边长(用于更宽的输出)。 (默认2)  -nodesep float    Minimum space between two adjacent nodes in the same rank (for taller output). (default 0.35)        同一等级中两个相邻节点之间的最小间距(用于更高的输出)。 (默认0.35)  -nointer    Omit calls to unexported functions.    忽略对未导出函数的调用。(忽略首字母小写的函数)  -nostd    Omit calls to/from packages in standard library.        忽略标准库的调用  -skipbrowser    Skip opening browser.        跳过打开浏览器  -tags build tags    a list of build tags to consider satisfied during the build. For more information about build tags, see the description of build constraints in the documentation for the go/build package        在构建期间更适合的构建标记        有关构建标记的更多信息,请参阅go / build软件包的文档中的构建约束说明。  -tests    Include test code.        包含测试代码  -version    Show version and exit.        显示版本号

登录后复制命令行格式:go-callvis [可选参数] 默认情况下,输出的图在 http://localhost:7878/,可使用选项-http=”ADDR:PORT”更改HTTP服务器地址。静态输出:要生成单个输出文件,使用选项-file=选择输出文件目标。输出格式默认为svg,使用选项-format=选择其他输出格式。使用示例:解析main包 go-callvis -skipbrowser -nostd ./解析testPkg包 go-callvis -group pkg,type -focus testPkg github.com/项目具体路径

五、效果图说明

请添加图片描述

规范说明

在这里插入图片描述

【相关推荐:Go视频教程、编程教学】

以上就是Go Callvis是啥的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2414548.html

(0)
上一篇 2025年3月3日 00:41:00
下一篇 2025年3月1日 01:43:09

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Go中Revive是什么

    revive是一个Go语言的代码质量检测工具,具有快速、可配置、可扩展、灵活和美观等特性;revive为自定义规则的开发提供了一个框架,用户可以定义一个严格的预设来增强开发和代码审查流程。revive与golint的不同:1、可以使用配置文…

    2025年3月3日
    200
  • go test的作用是什么

    “go test”是测试命令,作用是对Go语言编写的程序进行测试;这种测试是以代码包为单位的。“go test”命令会自动读取源码目录下面名为“*_test.go”的内含若干测试函数的源码文件,测试函数一般是以“Test”为名称前缀并有一个…

    2025年3月3日
    200
  • go语言有什么好处

    go语言的好处:1、可直接编译成机器码,不依赖其他库;2、静态类型语言,但是有动态语言的感觉,写起来的效率很高;3、语言层面支持并发;4、内置runtime,支持垃圾回收;5、简单易学;6、内置了大量的库,特别是网络库非常强大;7、内置强大…

    2025年3月3日
    200
  • golang Gob是什么

    gob是Golang包自带的一个数据结构序列化的编码/解码工具,编码使用Encoder,解码使用Decoder。Gob使用io.Writer 接口,通过NewEncoder()函数创建Encoder对象通过调用Encode()方法实现编码操…

    2025年3月3日 编程技术
    200
  • go语言中协程与线程的区别是什么

    区别:1、一个线程可以多个协程,一个进程也可以单独拥有多个协程;2、线程是同步机制,而协程则是异步;3、协程能保留上一次调用时的状态,线程不行;4、线程是抢占式,协程是非抢占式的;5、线程是被分割的CPU资源,协程是组织好的代码流程,协程需…

    2025年3月3日
    200
  • 初探Go语言中的Goroutine和channel

    本篇文章带大家初步了解go语言中的goroutine和channel,希望对大家有所帮助! Go 语言的 CSP 并发模型的实现包含两个主要组成部分:一个是 Goroutine,另一个是 channel。本文将会介绍它们的基本用法和注意事项…

    2025年3月3日
    200
  • 一文聊聊go语言中的限流漏桶和令牌桶库

    本篇文章带大家聊聊go语言中的限流漏桶和令牌桶库,介绍令牌桶和漏桶的实现原理以及在实际项目中简单应用。 为什么需要限流中间件? 在大数据量高并发访问时,经常会出现服务或接口面对大量的请求而导致数据库崩溃的情况,甚至引发连锁反映导致整个系统崩…

    2025年3月3日
    200
  • go Realize是什么

    Realize是一个Go工具,专注于加快和改善开发人员的工作流程,自动化用户的工作流程,集成第三方的其他工具,定义自定义cli命令,并在每次更改时重新加载项目,而不必停止编写代码;执行“go get github.com/tockins/r…

    2025年3月3日
    200
  • go语言eof错误是什么

    在go语言中,eof是指文件结尾错误,是Go语言中最重要的错误变量,存在于io包中,用于表示输入流的结尾。因为每个文件都有一个结尾,所以“io.EOF”很多时候并不能算是一个错误,它更重要的是表示一个输入流结束了。 本教程操作环境:wind…

    2025年3月3日
    200
  • 一文浅析Golang中的nil和零值

    作为一个长期从事Java开发的人员,我痴迷于null检查和处理null值。在golang中,故事有些不同。在这篇文章中,我将尝试描述在golang中如何使用nil和零值。 非空和空类型 在go中类型可以是空或非空。 非空类型永远不能为nil…

    2025年3月3日
    200

发表回复

登录后才能评论