Egon Elbre

goda

While reogranizing and trying to understand projects I ended up having lots of small different tools for different purposes. Eventually I realized that I can combine them to a single unified tool.

This tool is goda.

The tool than can be used in several ways, but the general idea is of package sets and calculating with them. Then that result can be visualized and presented in different ways.

For example, you have a package github.com/loov/goda, then you can include all the dependencies, with github.com/loov/goda:all. Then remove some packages that you are not interested in github.com/loov/goda:all - golang.org/x/sync/.... Then put it all together to visualize it: goda graph github.com/loov/goda:all - golang.org/x/sync/... | dot -Tsvg > graph.svg.

There are a lots of other commands and ways to narrow down what you want to present. Please see the full details at github.com/loov/goda.

I also made a presentation about it at Golang NorthEast meetup. Some of the details have changed since then, but it should still give a good overview of the general principles.