go-callvis для инструментов визуализации Golang

задняя часть Go визуализация данных
go-callvis для инструментов визуализации Golang

Мало знаний, большой вызов! Эта статья участвует в "Необходимые знания для программистов«Творческая деятельность.

Эта статья приняла участие"Проект "Звезда раскопок"", чтобы выиграть творческий подарочный пакет и бросить вызов творческим поощрительным деньгам.

задний фон

В повседневной жизни мы будем смотреть на некоторые проекты с открытым исходным кодом или хотим увидеть визуализацию кода, написанную нами.В golang мы можем использовать инструменты для его реализации.go-callvis показывает взаимосвязь вызовов программ go в виде картинок , что особенно полезно при просмотре сложных проектов.

2 Введение в go-callvies

2.1 Введение в инструмент

go-callvis — это инструмент разработки, помогающий визуализировать граф вызовов программы Go с помощью интерактивного представления.

Цель этого инструмента — предоставить разработчикам визуальный обзор программы Go с использованием данных из графа вызовов и его связи с пакетами и типами. Это особенно полезно в больших проектах, где сложность кода намного выше, или просто при попытке понять код других людей.

2.2 Особенности

  • поддержите го мод
  • конкретный фокус-пакет в программе
  • Нажмите на пакет, чтобы быстро переключить фокус с помощью интерактивного средства просмотра
  • Сгруппируйте функции по пакету и/или методу по типу
  • Фильтрация пакетов по определенным префиксам пути импорта
  • Игнорировать функции в стандартной библиотеке
  • Пропускает различные типы вызовов функций

Три установки

  • пойти установить
$ go get -u github.com/ofabry/go-callvis 
  • Компиляция исходного кода и установка
$ git clone https://github.com/ofabry/go-callvis.git cd go-callvis && make install

Четыре примера вывода

Он запускает анализ указателей для построения графа вызовов программы и использует данные для создания вывода в точечном формате, который можно визуализировать с помощью инструмента Graphviz.

Пять инсталляций

go get -u github.com/ofabry/go-callvis
# or
git clone https://github.com/ofabry/go-callvis.git
cd 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 string
         Focus 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 string
         HTTP 服务地址 (默认 ":7878")
   -ignore string
        忽略包含给定前缀的包路径(用逗号分开)
   -include string
         包含具有给定前缀的包路径 (用逗号分开)
   -limit string
         Limit package paths to given prefixes (separated by comma)
   -minlen uint
         Minimum edge length (for wider output). (default 2)
   -nodesep float
         Minimum space between two adjacent nodes in the same rank (for taller output). (default 0.35)
   -nointer
         忽略对未导出函数的调用。
   -nostd
         忽略标准库的调用
   -skipbrowser
         跳过打开浏览器
   -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
   -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/cobra
2021/08/18 11:22:12 http serving at http://localhost:7878
2021/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

Ссылка на ссылку

разное

«Добро пожаловать для обсуждения в области комментариев, официальный представитель NuggetsПроект «Звезда раскопок»После мероприятия в комментариях будет разыграно 100 штук Наггетсов.Подробнее о лотерее читайте в статье о мероприятии».