6 ms·
I love the idea of autogenerating diagrams from either a schema or from some sort of actual definitions (terraform/cloud inspection/etc), but I've generally fou
by shabble 4y ago
I love the idea of autogenerating diagrams from either a schema or from some sort of actual definitions (terraform/cloud inspection/etc), but I've generally found that the layout can be pretty poor for any semi-complex system.
Even worse, a small change to the structure will typically cause a full re-layout, and place nodes completely differently to the previous output, making visual/mental comparisons between versions quite taxing.
Given that autolayout is likely never going to be as good as someone doing some amount of manual layout or at least hinting, it'd be nice if there was some way to allow explicit placement of items and track it as metadata independently of the model changes.
I think Structurizr[1] has some capabilities along these lines, but the editor wasn't great the last time I tried it, and I think largely requires their SaaS for tracking that layout info.
Another option might be to feed it all into some flavour of graph DB with interactive querying/filtering and layout, and let users produce just the diffs / bits that they care about, if practical.
[1] https://structurizr.com/ https://structurizr.com/
- TranquilMarmot 4y agoI agree with this. I'm usually not a fan of auto-generated diagrams at all. I would rather spend the extra time making something that's more readable and has a better layout. The only exception for me would be for something that changes frequently where any diagram made by hand would go out of date quickly or be burdensome to maintain (not that diagrams usually get maintained...)
- shabble 4y agoThere's absolutely value in being able to partially generate (maybe just the nodes/edges, but without final layout), or possibly even just validate that a given diagram does actually match a given schema/definition, without necessarily solving the extremely hard problem of a good looking auto-layout. I've dabbled in the past with trying to do auto-layout of new items while preserving explicit changes by hacking at some of the Cytoscape.js layout providers to heavily penalise moves to manually positioned nodes, but I've never managed to make anything close to what I'd call acceptable for general use.
- Veuxdo 4y ago> The only exception for me would be for something that changes frequently where any diagram made by hand would go out of date quickly or be burdensome to maintain (not that diagrams usually get maintained...) I think there is something of a truism here... hand-made diagrams don't get updated because they are so hard to maintained.
- TranquilMarmot 4y agoVery true! It seems like it's either an out-of-date hand-made diagram that's readable, or an automatically updated diagram that's incomprehensible.
- nu11ptr 4y agoIt depends. We are an MSP and we generate the same "building block" network topologies for each of our clients. We are in process of adding auto diagramming, and it will work just fine because we have standardized cloud topology for each client. This allows us to take each security zone of their solution, manually lay out the base and then figure out how to layout optional attached components. Each diagram will look quite different when done, but you will be able to tell they all were done from the same template. However, I agree auto diagraming some random topology doesn't work nearly as well, and worse if it is a complex one. They tend to look like a spaghetti mess.
- shabble 4y agoThat's a good point, if you have a fairly small set of structures and you're mostly just adding/removing connections and changing labels, I can definitely see that working well. How are you generating the templates/base topology structures for that?
- nu11ptr 4y agoTemplates will be manual, so in reality we are just gluing together various parts to make a whole, with an understanding of how big the topology can get so we can do nice layout.
- adolph 4y agoI just watched the below video from last year partly about Structurizr. Below are other tabs about the topic I still have open. Diagrams as Code 2.0 • Simon Brown • GOTO 2021: https://www.youtube.com/watch?v=Za1-v4Zkq5E&t=1847s https://www.youtube.com/watch?v=Za1-v4Zkq5E&t=1847s The C4 model for visualising software architecture: https://c4model.com/ https://c4model.com/ Intro to Structurizr: https://www.baeldung.com/structurizr https://www.baeldung.com/structurizr