Recently, a cloned Unreal Engine repo locally to my PC. There are tons of file in the repo, and high quality codes. It's a great pleasure to read professionally written, not educational textbook, source code.
My question is, what is your general strategy to read and understand such a big projects for maintaining or using parts? And how do you understand which file associated with which? What is the best way to see short comes of still project to get sense which module need improvement?
1. Get an overall understanding of the high level architecture and design philosophy. Study the the source code directory structure and identify the important subsystems.
2. Try to understand the 'normal' flow of control for a typical use-case (ie. ignore error handling during the first pass). For instance, when a particular event occurs, how does the control flow through the subsystems that are involved in processing that event
3. Pick up the source code of one subsystem that looks interesting and make a dependency chart of its components.
4. Explore the source code of the subsystem, at first using a top-down approach (start with a component at the top of the dependency chart).
I wonder if the old program "understand c++" is still being maintained and available? It could actually serve as an IDE and I used it as such with g++ for several years. It could give you a TON of info about what function is called by what and the reverse (who calls what) and had a bunch of ways to unravel code. It was very inexpensive for its power. We even set it up generate a lot of automatic documentation. Top notch tool, and IIRC there is a trial period.