Golang可视化工具——go-callvis
一、go-callvis介绍
Go-callvis是一种golang代码可视化工具,用于帮助使用交互式视图可视化 Go 程序的调用图。此工具的目的是为开发人员提供一个可视化的 Go 程序概览,使用来自调用图的数据及其与包和类型的关系。这在大型项目中特别有用,因为这些项目的代码复杂度要高得多,或者只是简单地试图理解其他人的代码。
二、运行依赖
- Go 1.13+
- Graphviz (optional, required only with -graphviz flag)
三、安装
go get -u github.com/ofabry/go-callvis
或者是
git clone https://github.com/ofabry/go-callvis.git cd go-callvis make 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=<file path>
选择输出文件目标。 - 输出格式默认为svg,使用选项
-format=<svg|png|jpg|...>
选择其他输出格式。
- 要生成单个输出文件,使用选项
- 使用示例:
- 解析main包
go-callvis -skipbrowser -nostd ./
- 解析testPkg包
go-callvis -group pkg,type -focus testPkg github.com/项目具体路径
- 解析main包
五、效果图说明
- 规范说明
参考
附:有不足、疏漏欢迎指出,我可以借鉴学习后补充。
本文作者:Dancing-Pierre
本文链接:https://www.cnblogs.com/wyc-1009/p/17548163.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步