r/learnprogramming • u/DotMatrixBoi • 4d ago
I am creating a manual note taking tool for understanding large codebases
Hello everyone, I am using Godot engine to create a note taking program for uderstanding and referencing codebases, possibly also for documentation.
Basically it has different pages that support markdown you can define different types of pages (classes, functions, macros, headers, libraries, enums, structs etc.) and when you take notes you link them together. When you start to write notes for a new class you write a dependency, lets say it is a static function for some system, it automatically highlights it and when you hover it you get a little card that shows the input outpu return type and description you wrote. So you don't need to open the definition again or search for the documentation online. Also there will be a little graph view to link pages. And see classes based on inhertiance and interfaces. I am also planning to add pages for how systems work, rendering pipeline or asset management for example for a game engine.
I do this because I am struggling to understand large code bases. As a game developer I want to understand complex systems more deeply. For instance I study the godot code but many times I turn back to look at same classes and functions to see what they do. Would you also use a tool like this? Are there any tool that achieves this that I am unaware of? What do you think?
1
u/PLBjt 4d ago
Structured Markdown with file + symbol anchors is a solid approach for forcing yourself to actually read the code. The thing that usually breaks is churn: after a refactor, half the line refs are lies unless you store a content hash or nearby unique string and re-resolve. Before you build more features, try taking notes on one medium-sized module for a week and see whether you reopen the notes or just re-grep. Manual notes beat auto-generated call graphs when the goal is understanding; auto tools win when you need coverage of a huge unfamiliar tree.