For someone who doesn’t care language, what’s the difference between this and the original diagrams tool?
Create system diagrams with Go
11–20 of 70 posts
Re: Create system diagrams with Go
#12Re: Create system diagrams with Go
#13Very nice, but IMHO this should be the engine behind a file that could easily be parsed such as YML / JSON. I really don't see the point in having to write a Go snippet to describe the architecture: in the end you're providing only data as an input. I guess I'll try to do what I just described because I feel like this could have a lot of potential for my system diagrams
yaml is a serialization format. You need at least a schema at which point you might as well write in a nicer language.
Re: Create system diagrams with Go
#14For someone who doesn’t care language, what’s the difference between this and the original diagrams tool?
It's written in GO! :P
I hope this isn’t a trend similar to Atwood's Law: “Any application that can be written in JavaScript, will eventually be written in JavaScript.”
Re: Create system diagrams with Go
#15I was a bit disappointed however to find out the project uses Graphviz/DOT under the hood.
What would be the reason not to try a newer rendering engine such as as the Eclipse Layout Kernel (ELK)?
Re: Create system diagrams with Go
#16Very nice, but IMHO this should be the engine behind a file that could easily be parsed such as YML / JSON. I really don't see the point in having to write a Go snippet to describe the architecture: in the end you're providing only data as an input. I guess I'll try to do what I just described because I feel like this could have a lot of potential for my system diagrams
Writing a program to generate the diagram is similar to writing a program to generate your infrastructure which is exactly what you do in "infrastructure as code". If your infrastructure is simple then you may not need infrastructure as code. The same can be said for diagrams but at some point you might want the flexibility if the "diagram as code" approach.
Re: Create system diagrams with Go
#17Very nice, but IMHO this should be the engine behind a file that could easily be parsed such as YML / JSON. I really don't see the point in having to write a Go snippet to describe the architecture: in the end you're providing only data as an input. I guess I'll try to do what I just described because I feel like this could have a lot of potential for my system diagrams
> I really don't see the point in having to write a Go snippet to describe the architecture: in the end you're providing only data as an input. Writing a program to generate the diagram is similar to writing a program to generate your infrastructure which is exactly what you do in "infrastructure as code". If your infrastructure is simple then you may not need infrastructure as code. The same can be said for diagrams…
I was more thinking about my use case without considering all of the possible use cases such as Infrastructure as Code, which this project seems more suited for.
My use case is to create simple explanatory diagrams about a concept / idea rather than a real-world scenario: in those cases, I always end up using Draw.io. This causes me to waste a lot of time dragging and dropping around just to illustrate something simple :(
I guess that with my solution (which btw I'm developing here: [0]), you get a versionable diagram from a YML file that can be parsed and exported everywhere thanks to GraphViz. My idea of the input YML file is the following: [1]. This is a YML representation of the architecture shown in the README.md.
[0]: https://github.com/denysvitali/go-diagrams/tree/feature/pars...
[1]: https://github.com/denysvitali/go-diagrams/blob/feature/pars...
Re: Create system diagrams with Go
#18The result looks nice. I think this type of diagramming need to be as straightforward as possible, with as little typing as possible. I see you use many different types. For example gcp.Database.Sql(diagram.NodeLabel("Database")) What does the NodeLabel type provide that you would not gain with just the string?
It's an implementation of the functional option pattern used a lot in go code. See https://dave.cheney.net/2014/10/17/functional-options-for-fr... for a rundown.