Looking for books & other references mentioned in this video? Check out the video description for all the links! Want early access to videos & exclusive perks? Join our channel membership today: th-cam.com/channels/s_tLP3AiwYKwdUHpltJPuA.htmljoin Question for you: What’s your biggest takeaway from this video? Let us know in the comments! ⬇
After living through the 1990-2010 OOP/UML diagramming disaster, no. Pllease never again. Text is so perfect, OCL was good but it need to get integrated like in Eiffel.
I've used an online UML diagram tool that uses this principle (and I think the same language). Loved it. The time saved definitely justifies its usage, and the learning curve is pretty straightforward.
Like: - interactive, zoomable and ‘disposable’ hierarchies - exploring a (system’s) structure becomes ‘free’ and affordable; - easy to create, maintain, evolve, keep consistent, complete, coherent - model-based (DRY) - form and content separated (themes; like “The Zen of CSS Design”) - notation independent - open source - diagrams are disposable (like Observable’s “viz for ‘free’”) - DSL for hierarchy viz - can be generated (e.g. from augmented source code) - C4 model for gearing different (architecture) stories to different audiences - diagrams are maps (the map is not the territory :wink: - version controlled - like MVC for navigating and viewing (archtectural) structures (in order to understand and possibly improve them) - style specific abstract elements in the structure (e.g. system, user, etc.) - accept inputs from other sources - can generate formats for PlantUML, Mermaid, etc. - support hybrid of automatic and manual layout - uses Markdown for texts Wishes: - Observable adopts a theme approach as well: e.g. you can create a theme and use it to viz a hierarchy (that goes beyond the d3.hierarchy/tree/graph/treemap/sunburst default; just like CSS (visual) and HTML ((hierarchical) structure) - may be a visualizer for notebooks, in fact, for Observable itself, like - [Notebook Visualizer](observablehq.com/@observablehq/notebook-visualizer) - [Notebook Import Visualizer](observablehq.com/@observablehq/notebook-import-visualizer) - Notebook Visualizer _Elk Edition_](observablehq.com/@observablehq/notebook-visualizer-elk-edition)
Story of our lives 🤣 But silver lining, we can critique each of these "prototypes" of "our" ideas, and make a better something or better something completely new 🙂
Thanks Simon, In fact I developed small tool to generate plantuml from my own dsl expressed in json to solve the problems of diagramming versus modelling. And had following listed features to implement in future but never got it, looks like you have done all of it. Thanks, looking forward to use it. · Convert C4 architecture as code · Determine aspects such as below not as text, rather have their own meaning to easily search o Security (Authentication, Authorization, ports etc.) are well defined and understood. o Infrastructure tags such as network zone, nsgs ,vnets, load balancers, fail over etc. · Automatic architecture review implementation, may be embed with DevOps pipeline. · Generate Visualization automatically to better understand architecture. · Show entire architecture evolution (roadmap) with different milestones, possible animate it. - Associate architecture decisions with architecture.
I would enjoy seeing a case study on the efficacy of what he's proposing here. The big barrier I experience with my team is ongoing maintenance for diagrams and general opposition to even documenting to begin with. Would be cool to see some real life examples of start up / scale up teams and how they use this model. Insightful presentation!
Awesome presentation Simon! I've been using PlantUML for a while and more recently Mermaid. I love the idea of separating the model from diagrams. I found creating lots of diagrams for the same system is definitely not DRY and only gets worse over time. Have had a brief play with Structurizr Lite via the docker container. Works like a charm!
I wonder whether he's seen Unreal Blueprints, it would be great if someone could port that for a general programming environment instead of being restricted only to games.
Unfortunately, I can't see any real value of this tool in real projects: - many diagrams are created by non-tech people, and they probably won't want to learn a DSL, they prefer e.g. Visio, Enterprise Architect or diagrams net - for tech people, diagramming DSLs existed for long, e.g. .dot language or JavaScript libraries. They can be easily embedded in popular tech doc tools (like Markdown) - diagrams are great for high-level introduction to project (e.g. new employees, or new customers), but for low-level things like algorithms, a few lines of code tells a better story than even the best diagram - many tools can generate diagrams from real, production code (e.g. intellij can generate UML, Pulumi can generate .dot diagrams)
I am a newbie on software development (coding expirience over 3 years) and i am trying to develop a cloud based OS System (whatever, does not matter). However, it seems like c4 level architecture with it's dsl could be implemented as an emacs library or major mode? This general purpose of it as a text based architecture module seems to be the perfect match with the emacs enviroment. What do you think?
I use Yourdon-Demarco diagrams system to work with, I found C4 too verbose and not to the point and for an user/customer too intimidating. Your proposal seems a bit less complicated to presented to general public!
Looking for books & other references mentioned in this video?
Check out the video description for all the links!
Want early access to videos & exclusive perks?
Join our channel membership today: th-cam.com/channels/s_tLP3AiwYKwdUHpltJPuA.htmljoin
Question for you: What’s your biggest takeaway from this video? Let us know in the comments! ⬇
This sounds like a dream for Software Architecture diagramming in general. Thanks Simon Brown!
After living through the 1990-2010 OOP/UML diagramming disaster, no. Pllease never again. Text is so perfect, OCL was good but it need to get integrated like in Eiffel.
I've used an online UML diagram tool that uses this principle (and I think the same language). Loved it. The time saved definitely justifies its usage, and the learning curve is pretty straightforward.
What was the name of the tool?
Like:
- interactive, zoomable and ‘disposable’ hierarchies - exploring a (system’s) structure becomes ‘free’ and affordable;
- easy to create, maintain, evolve, keep consistent, complete, coherent
- model-based (DRY)
- form and content separated (themes; like “The Zen of CSS Design”)
- notation independent
- open source
- diagrams are disposable (like Observable’s “viz for ‘free’”)
- DSL for hierarchy viz
- can be generated (e.g. from augmented source code)
- C4 model for gearing different (architecture) stories to different audiences
- diagrams are maps (the map is not the territory :wink:
- version controlled
- like MVC for navigating and viewing (archtectural) structures (in order to understand and possibly improve them)
- style specific abstract elements in the structure (e.g. system, user, etc.)
- accept inputs from other sources
- can generate formats for PlantUML, Mermaid, etc.
- support hybrid of automatic and manual layout
- uses Markdown for texts
Wishes:
- Observable adopts a theme approach as well: e.g. you can create a theme and use it to viz a hierarchy (that goes beyond the d3.hierarchy/tree/graph/treemap/sunburst default; just like CSS (visual) and HTML ((hierarchical) structure)
- may be a visualizer for notebooks, in fact, for Observable itself, like
- [Notebook Visualizer](observablehq.com/@observablehq/notebook-visualizer)
- [Notebook Import Visualizer](observablehq.com/@observablehq/notebook-import-visualizer)
- Notebook Visualizer _Elk Edition_](observablehq.com/@observablehq/notebook-visualizer-elk-edition)
Every project idea I've ever had seems to just come into existence before I can start on it.
Story of our lives 🤣 But silver lining, we can critique each of these "prototypes" of "our" ideas, and make a better something or better something completely new 🙂
Love C4, PUML and diagrams as code in general. Will give structurizr docker & CLI a spin 👏🏼
Thanks Simon, In fact I developed small tool to generate plantuml from my own dsl expressed in json to solve the problems of diagramming versus modelling. And had following listed features to implement in future but never got it, looks like you have done all of it. Thanks, looking forward to use it.
· Convert C4 architecture as code
· Determine aspects such as below not as text, rather have their own meaning to easily search
o Security (Authentication, Authorization, ports etc.) are well defined and understood.
o Infrastructure tags such as network zone, nsgs ,vnets, load balancers, fail over etc.
· Automatic architecture review implementation, may be embed with DevOps pipeline.
· Generate Visualization automatically to better understand architecture.
· Show entire architecture evolution (roadmap) with different milestones, possible animate it.
- Associate architecture decisions with architecture.
I would enjoy seeing a case study on the efficacy of what he's proposing here. The big barrier I experience with my team is ongoing maintenance for diagrams and general opposition to even documenting to begin with. Would be cool to see some real life examples of start up / scale up teams and how they use this model. Insightful presentation!
Awesome presentation Simon! I've been using PlantUML for a while and more recently Mermaid. I love the idea of separating the model from diagrams. I found creating lots of diagrams for the same system is definitely not DRY and only gets worse over time. Have had a brief play with Structurizr Lite via the docker container. Works like a charm!
I wonder whether he's seen Unreal Blueprints, it would be great if someone could port that for a general programming environment instead of being restricted only to games.
Some excellent work there. Interesting stuff and worth looking into further. Great presentation!
Thank you for this very useful video!
Thanks..great presentation Simon
Unfortunately, I can't see any real value of this tool in real projects:
- many diagrams are created by non-tech people, and they probably won't want to learn a DSL, they prefer e.g. Visio, Enterprise Architect or diagrams net
- for tech people, diagramming DSLs existed for long, e.g. .dot language or JavaScript libraries. They can be easily embedded in popular tech doc tools (like Markdown)
- diagrams are great for high-level introduction to project (e.g. new employees, or new customers), but for low-level things like algorithms, a few lines of code tells a better story than even the best diagram
- many tools can generate diagrams from real, production code (e.g. intellij can generate UML, Pulumi can generate .dot diagrams)
Love it!
Why write autolayout for automatic layout? Would be better if the program uses autolayout when no layout is specified.
I think he meant something like "interpreted layout" or "implied layout" with "autolayout"
I am a newbie on software development (coding expirience over 3 years) and i am trying to develop a cloud based OS System (whatever, does not matter).
However, it seems like c4 level architecture with it's dsl could be implemented as an emacs library or major mode? This general purpose of it as a text based architecture module seems to be the perfect match with the emacs enviroment. What do you think?
I need to try this at work
great talk, despite I prefer to use something like cdk, terraform or pulumi to use such as diagram as code xD
what you think about integration with d2lang and terrastruct?
Yeah 🕺🏻
Probably cool, but in my eyes just pay for lucidscale and focus on something else unless docs are that important.
GPT has entered the chat
I use Yourdon-Demarco diagrams system to work with, I found C4 too verbose and not to the point and for an user/customer too intimidating. Your proposal seems a bit less complicated to presented to general public!
Loved the premise. You lost me at “hierarchy”.
Imagine using the same zoom in tech that NFTs use…
Inventing a "need" for a useless widget.