
The Hitchhiker’s Guide to PlantUML - bambambazooka
https://crashedmind.github.io/PlantUMLHitchhikersGuide/
======
mdaniel
A hidden gem in the about page:

[https://real-world-plantuml.com/](https://real-world-plantuml.com/)

which appears to be harvested from GitHub searches:
[https://github.com/yfuruyama/real-world-
plantuml/blob/master...](https://github.com/yfuruyama/real-world-
plantuml/blob/master/scraping/scraping.js#L46-L50)

------
ternaryoperator
For those unfamiliar with it, PlantUML enables you to create many types of
diagrams (both UML and Visio-like) using code. Quick overview here:
[https://crashedmind.github.io/PlantUMLHitchhikersGuide/about...](https://crashedmind.github.io/PlantUMLHitchhikersGuide/about/AboutPlantUML.html)

------
vasergen
I like plantUML, I really do. but I think more people will be attracted by it,
if they improve design and colors, so it looks modern out of box without any
hacking

~~~
grmartin
I was originally a proponent of it, but I find these days i prefer Mermaid. It
doesnt hurt that there are more Markdown editors/viewers integrated with
Mermaid than PlantUML.

~~~
octygen
Until mermaid comes up with the vast list of diagrams one can create in Plant
UML, I don't see it as operating in the same weight class. E.g., wireframes,
basic Gantts, AWS diagrams, component diagrams with graphviz (thought I
confess I hate this dependency), archimate diagrams if you're really hardcore.

~~~
ausjke
for UML it seems mermaid is indeed good enough, I used mermaid but never used
it for OOD UML, after a quick read it looks very simple and straightforward
for UML comparing to plantuml, especially you can embed mermaid right into
markdown as text

------
bauerd
>It has a simple intuitive syntax

The code example reminds me of Latex:
[https://crashedmind.github.io/PlantUMLHitchhikersGuide/Netwo...](https://crashedmind.github.io/PlantUMLHitchhikersGuide/NetworkUsersMachines/NetworkUsersMachines.html#id19)

~~~
_ZeD_
It's not so bad. What do you propose instead?

~~~
cosmojg
I think OP meant that as a compliment, not a criticism.

------
mintyc
PlantUML has morphed into a two part tool. Its original purpose was to
visualise various forms of UML diagrams.

More recently it has utilised its underlying graphviz to create a more general
'graphviz on steroids' diagramming tool (referred to as the PlantUML standard
library).

The original UML diagrams can be styled to look modern, but normally are shown
in a default slightly old-fashioned and uninspiring visual style. Such a shame
if that's your impression.

As mdaniel posted, just a refresh of the colour scheme can modernise the look
of UML diagrams

[https://real-world-plantuml.com/umls/4831648155697152](https://real-world-
plantuml.com/umls/4831648155697152)

The second part covered by this hitchhikers guide shows a modern take on
visualising component relationships.

Both parts allow visualisation as code, but otherwise have different purposes.

I wish we'd see more UML examples in a modern style.

(I'd also recommend MarkDeep for documentation. Includes these + markdown,
math, doxygen integration and more)

------
dang
If curious see also:

[https://news.ycombinator.com/item?id=21426793](https://news.ycombinator.com/item?id=21426793)

------
majkinetor
PlantUML is simply awesome. There is no other langauge that supports so many
diagramming features. I use it for more then half decade now on all projects.
You can create interface mocks, timelines, mindmaps, gant charts, uml
diagrams, graphs, OOP diagrams, whatever really, if it was invented, it is in
plantUML for sure, or will be. Also, devs are VERY responsive, if you have a
good idea, they will for sure implement it.

The only thing that is going on my nerves sometimes is that you can't
preciselly say position of elements and being happy with how concrete, albeit
more complex diagram draws, is somewhat trial and error (you change direction,
change arrow length here and there, change element order etc) but eventually
you will make it likeable.

Other thing is that syntax differs a lot between diagrams and I always need to
check out manual, no matter how much I use it, it just doesn't stick for me.
Thankfully, this is all very easy to do.

For those on Windows, I created chocolatey package [1] that installs all
dependencies along with PDF manual and you can have it on your CI or local
server as simply as `cinst plantuml`. There is also vscode and mkdocs plugins
that are great so you can just insert plantuml diagram strait into markdown
between other documentation (alternative is to prerender images which I also
did in the past, and is very fast as plantuml regenerates only changed stuff).
If you need mkdocs bundled with all this and other nice stuff, check out mm-
docs [2].

I must honestly say that this is one of the best FOSS projects I encountered
and that it definitelly needs more recognition and support.

[1]: [https://github.com/majkinetor/au-
packages/tree/master/plantu...](https://github.com/majkinetor/au-
packages/tree/master/plantuml)

[2]:[https://github.com/majkinetor/mm-docs-
template](https://github.com/majkinetor/mm-docs-template)

------
robador
Can someone explain the difference with graphviz?

~~~
samatman
graphviz makes graphs, and PlantUML makes UML diagrams:

[https://en.wikipedia.org/wiki/Unified_Modeling_Language](https://en.wikipedia.org/wiki/Unified_Modeling_Language)

Not being flippant, that's the difference. graphviz/dot is general-purpose and
can be configured to produce UML-like diagrams, but that's labor intensive.

PlantUML takes text and produces UML diagrams from it. It's configurable... as
long as you want UML. If you want something else, reach for graphviz.

In my own work, I use dot/graphviz for diagramming abstract syntax trees,
while I've used PlantUML a couple times to diagram the layout of structs and
to map the high-level relationships between modules in large software
projects.

org-mode does a very nice job of integrating both of those formats into
documents, fyi.

~~~
zmmmmm
Putting the emphasis on UML is a bit misleading actually (even though it is
literally in the name of the tool). I use it for basically any kind of ad hoc
diagramming. Essentially, an equivalent of Markdown for PowerPoint charts if
that makes sense. A few quick lines in text that look mostly like what they
come out as in the diagram and you have a very nice representation of a
workflow etc.

------
a_c
Sort of tangential. While there are lots of tools to convert code into
diagram, I wonder if there are tools to convert diagram into code with defined
rules.

Am asking because there are lots of programming illiterate colleagues. By
encoding the business rules into drawing rules, one could potentially delegate
the business logic writing part to non-coding staff

~~~
mch82
webgme.org, with a fair amount of work

~~~
a_c
Thanks for the pointer! Will check it out

------
csours
It took 3 clicks to get to the code.
[https://crashedmind.github.io/PlantUMLHitchhikersGuide/Netwo...](https://crashedmind.github.io/PlantUMLHitchhikersGuide/NetworkUsersMachines/NetworkUsersMachines.html)

~~~
mdaniel
Did you mean _code_ like
[https://github.com/Crashedmind/PlantUMLHitchhikersGuide](https://github.com/Crashedmind/PlantUMLHitchhikersGuide)
(which appears to be just the generated code from
[https://github.com/Crashedmind/PlayingWithPlantUMLSource](https://github.com/Crashedmind/PlayingWithPlantUMLSource)
for some reason)

~~~
csours
No, I meant the UML words instead of UML pictures.

