3 ms·
I had a similar experience. I've found a good happy medium is Graphviz. It's a bit different in that rather than drawing boxes and arrows on a canvas you edit
by JesseAldridge 13y ago
I had a similar experience. I've found a good happy medium is Graphviz. It's a bit different in that rather than drawing boxes and arrows on a canvas you edit a .dot file in your text editor and then have the tool do the layout and rendering. Having the layout happen automatically leads to some not-so-great looking graphs, but it ends up saving you a lot of time. Simply putting arbitrary text in nodes and connecting them via labeled edges gives you a lot of flexibility. When a graph gets too big and unwieldy (20+ nodes), I just split it in two. I'll color a node red to indiciate that there is more information about that node in another .dot file.
You do have to learn the .dot syntax, but it's nothing too crazy. A nice bonus is (at least with the OSX version of Graphviz) every time you save a .dot file via your text editor the renderer automatically re-renders the graph for you -- so you can make quick edits and get that instant feedback.
- dunham 13y agoI like using graphviz for visualizing existing code and data. I write a script to generate the .dot file, maybe tweak it a little, and render with graphviz. I've used this for our data model, ER diagrams, jar dependencies, brew package dependencies, etc. For class diagrams, I have a little python script that takes a language like: Foo -> Bar Bar *--1 Baz Foo - name : String - flag : boolean And turns it into a diagram. (gist: https://gist.github.com/dunhamsteve/5274411 https://gist.github.com/dunhamsteve/5274411 )