文章插图
一 背景日常我们会看一些开源项目 , 或者想看自己写的代码可视化 , 在golang中可以利用工具实现 , go-callvis是以图片的形式展示了go程序的调用关系 , 在看复杂项目时尤其有用 。
二 go-callvies 简介2.1 工具简介Go-callvis 是一个开发工具 , 用于帮助使用交互式视图可视化 Go 程序的调用图 。
此工具的目的是为开发人员提供一个可视化的 Go 程序概览 , 使用来自调用图的数据及其与包和类型的关系 。这在大型项目中特别有用 , 因为这些项目的代码复杂度要高得多 , 或者只是简单地试图理解其他人的代码 。
2.2 特性
- 支持go mod
- 程序中的特定焦点包
- 点击软件包 , 使用交互式查看器快速切换焦点
- 按类型按包和/或方法分组函数
- 过滤器包到特定的导入路径前缀
- 忽略标准库中的函数
- 省略各种类型的函数调用
- go get安装
$ go get -u github.com/ofabry/go-callvis 复制代码
- 源码编译安装
$ git clone https://github.com/ofabry/go-callvis.git cd go-callvis && make install复制代码
四 输出示例文章插图
【Golang 可视化工具之go-callvis】
它运行指针分析来构造程序的调用图 , 并使用数据生成点格式的输出 , 可以使用 Graphviz 工具进行渲染 。
五 安装
go get -u github.com/ofabry/go-callvis# orgit clone https://github.com/ofabry/go-callvis.gitcd go-callvis && make install复制代码
六 使用go-callvis [可选参数] <包路径>1)使用浏览器交互展示
默认情况下 , HTTP服务器在http://localhost:7878/上侦听 , 请使用选项`-http="ADDR:PORT"`更改HTTP服务器地址 。
2)静态输出
要生成单个输出文件 , 使用选项-file=<file path>选择输出文件目标 。
输出格式默认为svg , 使用选项-format=<svg|png|jpg|…>选择其他输出格式 。
3)其他参数
-debug输出详细日志-file string以文件新式输出结果 , 并将忽略server交互模式-focus stringFocus specific package using name or import path. (default "main")-format string输出文件的格式 [svg | png | jpg | ...] (默认 "svg")-graphviz使用Graphviz渲染图像-group string分组功能 , 根据包 与/或 类型分组 [pkg, type] (用逗号分开) (默认 "pkg") , 例如 -group pkg,type-http stringHTTP 服务地址 (默认 ":7878")-ignore string忽略包含给定前缀的包路径(用逗号分开)-include string包含具有给定前缀的包路径 (用逗号分开)-limit stringLimit package paths to given prefixes (separated by comma)-minlen uintMinimum edge length (for wider output). (default 2)-nodesep floatMinimum space between two adjacent nodes in the same rank (for taller output). (default 0.35)-nointer忽略对未导出函数的调用 。-nostd忽略标准库的调用-skipbrowser跳过打开浏览器-tags build tagsa 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-tests包含测试代码-version显示版本号1)解析main包go-callvis -skipbrowser -nostd ./2)解析testPkg包go-callvis -group pkg,type -focus testPkg github.com/项目具体路径 复制代码
简单示例$ go-callvis -format png -group pkg,type -focus github.com/kaliarch/cobra/cmd/App github.com/kaliarch/cobra2021/08/18 11:22:12 http serving at http://localhost:78782021/08/18 11:22:21 converting dot to png..2021/08/18 11:22:22 serving file: /var/folders/wn/367g1v9n1bv0sg1k8qldzym80000gn/T/go-callvis_export.png复制代码
文章插图
推荐阅读
- Firefox浏览器|火狐浏览器新增实用工具:将支持图片文字识别
- 什么资源都能搜?这款搜索引擎工具,一键检索各大网盘资源
- 3个超强资源搜索工具 资源搜索工具
- 连裤袜|“颜值经济”盛行,美妆工具受追捧,我国美妆工具市场需求增势明显
- 化妆|让化妆技术突飞猛进的宝藏化妆工具!
- Hutool 工具类的简单使用入门
- 五种常见 Linux 系统安装包管理工具中文使用指南
- 汇总4款工具 手动设置不在此范围 局域网共享设置工具
- 火车和飞机哪个更安全 最安全的交通工具
- 黑客|花170元黑掉马斯克星链终端 黑客公开自制工具