Live data from Hacker News

Ask HN: Visualizing software designs, especially of large systems (if at all)?

news.ycombinator.com

21–30 of 129 posts

Re: Ask HN: Visualizing software designs, especially of large systems (if at all)?

#24
post #15

This tool is good for making simple UML diagrams and even lets you do it with simplified syntax https://plantuml.com/ I'd say the big problem in visualizing big systems is that you can't usefully do it in one graph. For instance I worked on a system that had 2000+ database tables if you were going to make a diagram of that which shows everything it is going to take up a long wall. (This can be useful, but it is a big…

wikipedia page says suicide

We will probably never know if it was a suicide or he was "suicided". Given his works one has to wonder... Did one of them hit too close to the truth?

Re: Ask HN: Visualizing software designs, especially of large systems (if at all)?

#25
UML is not a documentation tool, it´s a communication tool. It is a standardized way to communicate. It removes ambiguity. UML is the best way to manage, communicate and handle a large amounts of complexity. Most of the free UML tools are very basic and does not have traceability features (we can see many in the comments), and this is really a no-go if you want to understand large systems.

Re: Ask HN: Visualizing software designs, especially of large systems (if at all)?

#26
The most important rule is that you can’t include everything in a single doc as it quickly gets too big and complicated.

So you need to break it down into multiple documents that cover different use cases and include only the components for a small set of use cases.

Then use the C4 model to break up the docs.

Re: Ask HN: Visualizing software designs, especially of large systems (if at all)?

#27
I like using https://c4model.com/ - the Level 2 diagram is particularly useful.

I use https://mermaid-js.github.io/mermaid/#/ for the diagram itself because Github natively supports it in markdown files, so you can revision control the diagram. I managed to get reasonably close to the C4 diagrams minus a few features that mermaid does not support.

Re: Ask HN: Visualizing software designs, especially of large systems (if at all)?

#28
A nice talk at kubecon last year spoke about visualizing protocols and more complex multi-party exchanges.

The suggestion it made was to look across module boundaries or microservice boundaries, while making a particular request. So I go to update a Project with a new Pipeline, and I find out that the project service talks to the pipeline service which then has to create resources for which it talks to various resource services, all of that.

Since there aren't great digital tools for doing this, for visualizing these things, it was suggested in that talk that one of the more outside the box things you could do is to just take cardboard and modeling clay and strings and cut out some shapes to represent the different services, let each string be an RPC, and the actual diagram you would imagine being alive in time, like little beads flying across these strings, to indicate requests going out and then responses coming back... But the key was less to witness the time but more to get a timeless sense of connection, “oh, it turns out ResourceService is very hairy in these diagrams, it is kind of the central hub for this microservice cluster.” and for that it was helpful that the visualization had a certain physicality to it, it had weight and structure and engaged more senses than just the visual...

I've actually thought about just digitizing these ideas, even though it misses half the point LOL. I think that could be some wonderful documentation and diagrams in our onboarding for new folks.

Re: Ask HN: Visualizing software designs, especially of large systems (if at all)?

#29
post #21

We like using PlantUML and it embeds in Asciidoc nicely. Also the C4 Model seems cool but I don't currently use it https://c4model.com/

Plus one for C4 Models. Most important aspect of it: When you do lines and boxes in a diagram, put descriptions on the lines, not just the boxes. Sounds simple, but is often forgotten. The result is people seeing UML, making all sorts of assumptions.

Re: Ask HN: Visualizing software designs, especially of large systems (if at all)?

#30
post #15

Earlier quoted context omitted.

wikipedia page says suicide

We will probably never know if it was a suicide or he was "suicided". Given his works one has to wonder... Did one of them hit too close to the truth?

alternatively, given his obsession with conspiracy - maybe he was unable to establish deep connections with anyone in his life
Post reply on HN