Explaining Code Using ASCII Art
We sometimes use Monodraw [1] for that in our team and it really made a difference. It&#x27;s always great to get a top-down perspective on the topology &#x2F; architecture at the beginning of a complex program.<p>[1] <a href="https:&#x2F;&#x2F;monodraw.helftone.com" rel="nofollow">https:&#x2F;&#x2F;monodraw.helftone.com</a><p>Example copied from a program that fetches data from somewhere and prepares it and mounts it as a fuse file system:<p><pre><code>    &#x2F;*
    ┌─────────────────────────────────────┐
    │                      ┌─────────────┐│
    │                      │             ││
    │      ┌──memory───◀───┼───┬──────┐  ││
    │      │main thread│   │   │parser│  ││
    │      └───────────┴───┼───▶──────┘  ││
    │          │ ▲         │     │ ▲     ││
    │          │ │         │     │ │     ││
    │          │ │         │     │ │     ││
    │          ▼─│         │     │ │     ││
    │         ;20s:        │     │ │     ││
    │         :   ;        │     │ │     ││
    │          ╲ ▲         │     ▼─│     ││
    │          │&#x27;│         └────;120s────┘│
    │┌─────────┼─┼────────┐ ┌──▶:   ;───┐ │
    ││    ┌────▼─┴────┐   │ │    ╲ ╱    │ │
    ││    │fast memory│   │ │     &#x27;     │ │
    ││    │main thread│   │ │     Λ     │ │
    ││    └─┬───────▲─┘   │ │    ╱ ╲    │ │
    ││      │       │     │ │   ╱   ╲   │ │
    ││    ┌─▼─fuse──┴─┐   │ └──     ◀─┘ │
    ││    │controller │   │    beacon     │
    ││    └─┬───────▲─┘   │      ╲ ╱      │
    ││      │       │     │       V       │
    │└──────┼───────┼─────┘               │
    │┌──────▼───────┴─────┐               │
    ││   fuse &lt;&gt; kernel   │               │
    │└────────────────────┘               │
    └─────────────────────────────────────┘
    *&#x2F;
</code></pre>
(screenshot of comment without the HN formatting issues: <a href="https:&#x2F;&#x2F;i.imgur.com&#x2F;YOaysWn.png" rel="nofollow">https:&#x2F;&#x2F;i.imgur.com&#x2F;YOaysWn.png</a>)