I just inherited a large code base and I was wondering what others do to get familiar with a code base.
I’m in the same boat, having just picked up a new client with a Rails application. And unfortunately the original developers created no tests [argh]. So I’m doing the following, fairly mundane things:
- Reading the code. I started with the directory structure and looked around there to see what “components” I had to deal with; there are a fair chunk of controllers and a CMS kind of editing feature where the users can update the contents. If I had some existing tests, I would be reading those as well.
- Playing with the application. I like to see what it actually looks like and works like.
- Write ‘characterization’ tests. Check out this Wikipedia page and and this page for a quick introduction. It helps build understanding of how things work as well as putting at least a few tests in place.
- Finad and make some very small changes. The client a little tiny thing they wanted updated, which meant I could actually make the change and then get it deployed
- Finally, make sure you understand how to deploy the app. I spent much more time getting that to work (DreamHost site) than I did make the actual change).