Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

So here's a question I've been wanting to figure out for ages:

Are there any resources you recommend for learning to make good diagrams? Ie, I love documenting things but I don't have experience in drawing diagrams. I don't know conventions for displaying order of execution, what arrows should indicate (in A->B is A giving information to be? is B requesting information from A? etc).

Are there any good tutorials/classes/whatever on drawing good diagrams? Good at conveying information, but also consistent with what educated people would expect?



I'm not the biggest fan of UML everywhere, but one benefit of it is that certain diagram types are standardized.

https://en.wikipedia.org/wiki/Unified_Modeling_Language

Check out interaction diagrams for what you describe. Two parties (A and B) would be represented as two columns, moving down the diagram means moving forward in time. The arrow going from one to the other is a message (either an actual message or a function call or something). So A->B means A is signaling (the text and context describe how) B. If B is requesting information, you'd have two arrows. First B<-A, and then A->B with the response (attempted plain text version):

   t A     B
   0 |     |
   1 |---->| A sends data to B
   2 |     |
   3 |<----| B requests more information from A
   4 |---->| A responds
A and B could be people, processes, classes/objects, servers, whatever. The interaction points are described with the context of the diagram and text. (NB: t is not meant to be explicit here, I've included it to illustrate the passage of time going down the diagram.)


If you just want a sequence diagram like that I suggest https://www.websequencediagrams.com/

It's now as a website, but I have the server version and use it at least once a week to crank out interactions


I have this exact same question. I've found some conventions over the years that have been helpful, but haven't found anything comprehensive.

With regards to what the arrows indicate, I've done dotted line arrows are synchronous, with a solid arrowhead meaning request body and an outlined arrowhead being the response. Then used solid black line with a single solid arrowhead for an asynchronous request.


I've used FMC[1] with decent results. C4 modelling[2] is another option, but I personally haven't used it yet.

1. http://www.fmc-modeling.org/quick-intro

2. https://c4model.com/




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: