There is however a growing movement of being able to visualize how a system is functioning at various levels. XState/Statecharts are a good example (https://xstate.js.org/viz/). Another example in the Ops space would be https://github.com/spekt8/spekt8 for K8S. I work at Grafana and we're more or less trying to expose these things in ways that make sense. Our bread and butter is timeseries data but we're adding more in that regard (it's possible to build node graphs from running systems).
Ask HN: Visualizing software designs, especially of large systems (if at all)?
41–50 of 129 posts
Re: Ask HN: Visualizing software designs, especially of large systems (if at all)?
#42At the moment, codeatlas is only a static gallery, but we're currently about 1-2 weekends away from releasing a Github action that deploys this diagram on github pages for your own repos - if you're interested, feel free to watch this repo: https://github.com/codeatlasHQ/codebase-visualizer-action
Re: Ask HN: Visualizing software designs, especially of large systems (if at all)?
#43I gave this a bit of thought earlier this year ( https://alexanderell.is/posts/visualizing-code/ ) and, with the help of HN commenters, collected a small list of ways people are working to help with code visualization. I don't think most of them are production ready (some are just research papers), but you may find them interesting all the same. SoftVis3D ( https://softvis3d.com/ ): where a "‘code city’ view provides…
Re: Ask HN: Visualizing software designs, especially of large systems (if at all)?
#44These types of diagrams are either not specific enough to answer any useful questions or so dense and insane that no one can read them.
If you have a business requirement with a decision tree it is probably a good fit for this type of documentation - write it down in DOT or asciiflow or something
Re: Ask HN: Visualizing software designs, especially of large systems (if at all)?
#45i always found uml and other object style diagrams to be kind of obfuscating and encouraging of overcomplicated oop designs.
Re: Ask HN: Visualizing software designs, especially of large systems (if at all)?
#46I would never use UML.
Re: Ask HN: Visualizing software designs, especially of large systems (if at all)?
#47Re: Ask HN: Visualizing software designs, especially of large systems (if at all)?
#48UML 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)?
#49For a small but complicated project I got thrown into a while ago, the only way for me to understand it was to print out all the source directly, vertically tape together the pages for a single file, and then lay them all out on a huge table. Then I took multicolored markers and started physically drawing out the call chains. I then I sers-toi the system, and also found an enraging bug: the system widely used the var…
Sounds like something the type system should have caught!
Re: Ask HN: Visualizing software designs, especially of large systems (if at all)?
#50For a small but complicated project I got thrown into a while ago, the only way for me to understand it was to print out all the source directly, vertically tape together the pages for a single file, and then lay them all out on a huge table. Then I took multicolored markers and started physically drawing out the call chains. I then I sers-toi the system, and also found an enraging bug: the system widely used the var…
I remember a whole bunch of light bulb moments when I showed other developers the "big picture". It's an awesome technique when you're forced to work on spaghetti!