

Visualising dependencies in Go - yla92
http://dave.cheney.net/2014/11/21/visualising-dependencies

======
kagebe
Wasn't the original goal 'Reducing the coupling between our core packages'?
How is a fully display of all the transitive dependencies necessary for that?

The goal already implies, that what's important here, are the (both direct and
indirect) dependencies between their packages. To understand those better, you
do not need to draw a dependency to any Go core library or other
'uninteresting' library, which would be a leaf in the directed graph or whose
transitive dependencies are only 'uninteresting'.

I think those chord graphs might actually be the way to go, if you'd just
restrict the amount of packages to the relevant ones.

It might be nice to automatically add references to source lines where those
dependencies are needed to the tooltip.

------
padator
You should try Dependency Structure Matrix. In my experience they are more
scalable than other forms of software visualization. See
[https://github.com/facebook/pfff/wiki/CodeGraph](https://github.com/facebook/pfff/wiki/CodeGraph)

------
bkirwi
If anyone's trying this at home, I'd suggest scoping down the problem a bit:

\- Trying to get rid of a specific problematic dependency? It's easy to filter
a DAG to only those paths that lead to a particular node.

\- Trying to reduce the raw number of dependencies? Consider collapsing
clusters of transitive dependencies down to a single node. (If one of your
direct dependencies pulls in 20 unique deps of its own, you don't really need
to know what they are or how they're connected to each other -- just that
there are 20 of them.)

------
idunning
I tried something similar with Julia packages [1] but I only tried force
graphs - with similarly poor results for the most part. The data I used is
already out of date (got another 80 packages since then! [2]) so maybe a good
reason to revisit with these other graph styles.

[1]: [http://iaindunning.com/2014/pkg-
deps.html](http://iaindunning.com/2014/pkg-deps.html)

[2]:
[http://pkg.julialang.org/pulse.html](http://pkg.julialang.org/pulse.html)

------
not_kurt_godel
Yikes, this post made me realize how I've never seen a chord graph that I
liked or coherently communicated data. Is there anything they're actually
useful for?

------
omegaworks
Any implementations of this for Python?

------
baq
are there any good dot implementations in js?

~~~
mes5k
[https://github.com/cpettitt/dagre/wiki](https://github.com/cpettitt/dagre/wiki)

~~~
baq
perfect, thanks!

