GO-Callvis adalah alat pengembangan untuk membantu memvisualisasikan grafik panggilan dari program GO menggunakan tampilan interaktif.
Tujuan dari alat ini adalah untuk memberi pengembang gambaran visual program GO menggunakan data dari grafik panggilan dan hubungannya dengan paket dan jenis. Ini sangat berguna dalam proyek yang lebih besar di mana kompleksitas kode jauh lebih tinggi atau ketika Anda hanya mencoba memahami kode orang lain.

Lihat kode sumber untuk gambar di atas.
Ini menjalankan analisis pointer untuk membangun grafik panggilan program dan menggunakan data untuk menghasilkan output dalam format DOT, yang dapat diberikan dengan alat graphviz.
-graphviz )Untuk menginstal go-callvis, jalankan:
# Latest release
go install github.com/ofabry/go-callvis@latest
# Development version
go install github.com/ofabry/go-callvis@masterAtau, klon repositori dan kompilasi kode sumber:
# Clone repository
git clone https://github.com/ofabry/go-callvis.git
cd go-callvis
# Compile and install
make installUntuk menggunakan tampilan interaktif yang disediakan oleh server web yang melayani gambar SVG dari paket terfokus, Anda dapat menjalankan:
go-callvis <target package>
Server http mendengarkan di http: // localhost: 7878/secara default, gunakan opsi -http="ADDR:PORT" untuk mengubah alamat server http.
Untuk menghasilkan opsi penggunaan file output tunggal -file=<file path> untuk memilih tujuan file output.
Format output default ke svg , gunakan opsi -format=<svg|png|jpg|...> untuk memilih format output yang berbeda.
Usage of go-callvis:
-debug
Enable verbose log.
-file string
output filename - omit to use server mode
-cacheDir string
Enable caching to avoid unnecessary re-rendering.
-focus string
Focus specific package using name or import path. (default "main")
-format string
output file format [svg | png | jpg | ...] (default "svg")
-graphviz
Use Graphviz's dot program to render images.
-group string
Grouping functions by packages and/or types [pkg, type] (separated by comma) (default "pkg")
-http string
HTTP service address. (default ":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)
-nodesep float
Minimum space between two adjacent nodes in the same rank (for taller output). (default 0.35)
-nointer
Omit calls to unexported functions.
-nostd
Omit calls to/from packages in standard library.
-rankdir
Direction of graph layout [LR | RL | TB | BT] (default "LR")
-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
-tests
Include test code.
-version
Show version and exit.
Jalankan go-callvis -h untuk mendaftar semua opsi yang didukung.
Di sini Anda dapat menemukan deskripsi untuk berbagai jenis output.
| Mewakili | Gaya |
|---|---|
focused | warna biru |
stdlib | warna hijau |
other | warna kuning |
| Mewakili | Gaya |
|---|---|
exported | perbatasan tebal |
unexported | perbatasan normal |
anonymous | perbatasan putus -putus |
| Mewakili | Gaya |
|---|---|
internal | warna hitam |
external | warna coklat |
static | Garis solid |
dynamic | garis putus -putus |
regular | panah sederhana |
concurrent | panah dengan lingkaran |
deferred | panah dengan berlian |
Berikut adalah contoh untuk synching proyek.

Lihat lebih banyak contoh dan opsi perintah yang digunakan.
Bergabunglah dengan saluran #Go-Callvis di gophers.slack.com. ( Belum menjadi anggota? Dapatkan undangan)
Apakah Anda menemukan bug atau memiliki beberapa saran?
Apakah Anda ingin berkontribusi pada proyek?
Tujuan ideal dari proyek ini adalah untuk membuat aplikasi web yang secara lokal akan menyimpan data grafik panggilan dan kemudian memberikan akses cepat dari grafik panggilan untuk setiap paket pohon ketergantungan Anda. Pada awalnya itu akan menunjukkan peta interaktif dari ketergantungan keseluruhan antara paket dan kemudian dengan memilih paket tertentu, ia akan menunjukkan grafik panggilan dan menyediakan berbagai opsi untuk mengubah output secara dinamis.