top | item 20296522

Ask HN: How to navigate large code bases?

2 points| paulborza | 6 years ago | reply

Are there any good tools out there designed for navigating large code bases? I'm thinking something that can generate class and caller/callee diagrams... Thanks!

3 comments

order
[+] davismwfl|6 years ago|reply
Depends on the language of the codebase, but there are various tools that can help you, like doxygen if things are setup well.

My two cents, I always do a manual mapping for the modules and key classes, even in large code bases because it forces me to learn the codebase and create documentation at the same time. I do this by literally starting at main() and tracing the code to what is called first etc. So when I am done I have a high level overview of the path through the code and what modules are what and what they do.

Usually takes a few days to do a larger code base, largest one took me 2 weeks. It isn't the most fun work, but it lets you build documentation to save yourself and others later too.

[+] billconan|6 years ago|reply
My experience is that debugging is more effective than looking at static code. To find callers, I set break points. Other than that, grep, opengrok, doxygen or a decent ide are good helpers.
[+] paulborza|6 years ago|reply
Thanks. I'm looking at doxygen right now. Looks like it has support for generating dependency graphs.