Hacker News new | ask | show | jobs
I will document your code for you
16 points by c3c 2502 days ago
Hello HN,

Having almost 20 years of sw development experience I got sick of bad or missing documentation. I quit my job and building software that will create diagrams and documentation from source code.

Always clear and always up-to-date.

If you are working on a project, tell me what diagrams you would like to have. Point me at your code and I will create diagrams for you. I’ll do it for free - no catch, no strings. My only benefit is learning documentation problems and gaining experience solving them.

Documentation is not dead, we just not doing it right.

2 comments

How is your tool different from doxygen?

my web server code if you need a sample https://github.com/shi-yan/Swiftly

I also really want to see a doc for wireguard

I think having a good doc is also on their todo list

https://www.wireguard.com/todo/

I want to understand the big picture. So how many modules, the life cycles of them, the data flow between them.

I checked out your site: https://sourcespy.com/keyu-0003nt

Is this the same as UML?

To be honest, I think UML doesn't help much understanding code. In my opinion, code should be understood by looking at its runtime structure, not the static structure.

For example, you have a main thread that spawns worker threads and they work together. This structure only forms during runtime. in the code, there is only one worker thread class and one main thread class. Software is different from hardware. Hardware is more self-explanatory - when you have multiple hardware components, you have to physically put them on the board. Software is very flexible. The real architecture is created only when the software starts to run.

I think all previous attempts to generate documentation failed for a reason.

Reason is that we need to explore code, change the the views, add/remove modules as they explore. Static documentation (eg doxygen) is too rigid.

Developers need an interactive code explorer rather then tons of static HTML.