4 ms·
Visualising dependencies in Go
- idunning 12y agoI 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
- baq 12y agoare there any good dot implementations in js?
- kagebe 12y agoWasn'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.
- deleted 12y ago[deleted]
- padator 12y agoYou 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
- omegaworks 12y agoAny implementations of this for Python?
- not_kurt_godel 12y agoYikes, 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?
- bkirwi 12y agoIf 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.)