文档首页> 常见问题> Go Callvis是啥

Go Callvis是啥

发布时间:2023-03-20 00:43       

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

本教程操作环境: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/项目具体路径

五、效果图说明

请添加图片描述

  • 规范说明

在这里插入图片描述