TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: What tools do you use to familiarize yourself with a new codebase?

5 pointsby kareninoverseasover 6 years ago
Sometimes a codebase has sparse documentation, or the maintainers are too busy to answer questions regularly. This is especially true for open-source projects.<p>When looking over a large codebase with poor documentation, what tools and tricks have you learned to understand it faster&#x2F;more easily?<p>Examples can be language, platform or IDE-specific, e.g. &quot;projects on github have a handy search in project feature!&quot;

6 comments

amirathiover 6 years ago
- Never aimlessly browse through large codebase. Pick a change you want to introduce, maybe a string change, a small bugfix, low hanging feature etc. Goal gives you the motivation to keep digging through things and in that process you make a good mental model of the codebase.<p>- Sprinkle logging statements all over the place and tail logs to figure out the execution flow.<p>- Look at the past merge requests. They typically have descriptions. Go through the ones where you have some context about the goal of MR.
thedevindevopsover 6 years ago
For C# codebases that have no documentation I use a script that has evolved over the years that generates a private documentation collection for myself.<p>It scans for static methods and data access classes using reflection and dumps their signature&#x2F;return &amp; parameter information into a documentation template. That way I can see what exits to leverage when adding new features - having spent way too much time over the years listening to &#x27;why didn&#x27;t you leverage <i>this</i>?&#x27; in code reviews.<p>I&#x27;m currently working on a new one that scans for stored procs in databases to see what&#x27;s living in the dark down there.
billconanover 6 years ago
I think understanding a code base should be an interactive process, because software&#x27;s static form, i.e. its source code is different from its dynamic form when it&#x27;s loaded into memory and runs. And it&#x27;s really the later we want to understand. So the key tool should be a debugger, windbg , gdb. Other than that, grep, find, opengrok are good tools.
sgillenover 6 years ago
If you&#x27;re not using an IDE or a text editor with &quot;go to definition&quot; feature you really should be. Might sound obvious but it will change your life if you&#x27;re not already using this.
tedmistonover 6 years ago
Check out the unit tests around the parts that are interesting and dig into the codebase from there understanding how things are used from the tests.
pplonski86over 6 years ago
I&#x27;m using atom.io plus grep plus find. Also found reading code directly from github quite comfortable.