4 ms·
One of the problems is: what is the language to describe these diagrams? We do have UML and it's various variants: PlantUML, Mermaid but these are too low level
by HighlandSpring 4y ago
One of the problems is: what is the language to describe these diagrams? We do have UML and it's various variants: PlantUML, Mermaid but these are too low level to prescribe conventions over how to use these to describe complex architectures. A sequence diagram could describe anything through customer journeys, rest api call patterns to call stacks within a VM. Granularity/level of abstraction needs to be captured or else you end up with metres squared of boxes that cannot be parsed at a glance unless you're Rainman.
The closest I found that solves this problem is https://c4model.com/ https://c4model.com/ but you still need the code to turn your code into these markups. Can this be well inferred from code alone without framework specific interpreters? I doubt it.
And then you still need a frontend to zoom and navigate the ridiculous amount of hierarchy found within any modern software architecture, e.g microservices.
It also doesn't help microservices patterns also prescribe that you don't share repositories or code. So now you also need to pattern match untyped references across these codebases.
This is a lot of convention and tooling that I'm not sure exists.
Edit: and this is before even getting into version control and reconciling the target->as-is iterative loop.
- pjot 4y agoI really enjoy(ed) using c4. Still need to figure out how to protect against screenshots though!
- HighlandSpring 4y agoProtect against screenshots? Could you elaborate please
- Dangeranger 4y agoI believe the parent commentator is referring to how screenshots of a diagram generated at build or runtime are almost always out of date. It’s better to generate a diagram as needed than to archive an outdated artifact that could lead to confusion.
- isbvhodnvemrwvn 4y agoWe just treat them as any other artifact, a plantuml job builds it and it gets published under a certain URL.