*This article was originally posted on May 14th, 2019 at: https://nickjanetakis.com/blog/learning-a-new-and-unfamiliar-code-base
Someone who took my Flask course recently e-mailed me asking if I could make a video on how to tackle learning a new code base and it just so happens I had to do that very recently so I made a video showing the process I use on 3 different apps.
Gaining Insight on 3 Unfamiliar Code Bases (Video)
Timestamped Table of Contents
- 0:39 -- In the real world, documentation isn't always available
- 1:25 -- Exploring 3 different web apps to gain insight on what they do
- 2:15 -- Taking a look at a closed source Flask application
- 3:55 -- Figuring out the tech stack of the application from the bottom up
- 6:32 -- Getting an idea of what a web app does by looking at its URL routes
- 9:30 -- Scoping out a project's size on the command line in a few seconds
- 12:15 -- Determining how an app is designed based on lines of code for file types
- 13:11 -- Using prior experience and our new found knowledge to find out what to edit
- 14:05 -- Looking at an open source Phoenix app (https://changelog.com) on GitHub
- 14:50 -- One strategy for fixing a bug in an open source project
- 15:24 -- Learning from open source projects to build your own web applications
- 16:40 -- First steps to get familiar with an open source project's code base
- 16:45 -- Using GitHub's UI to gain insights on an application's code base
- 18:21 -- Repeating most of what we did on the command line but on GitHub instead
- 20:21 -- Copying features from an open source project into your project
- 21:05 -- Tracing code on a need to know basis
- 23:08 -- Making your first pull request on an open source project
- 25:07 -- Not every pull request needs to be Earth shattering, small is ok
- 25:33 -- You don't need to be an expert or professional to contribute to a project
- 25:52 -- Don't under estimate small pull requests, always test your code!
- 27:18 -- Looking at a Ruby on Rails open source project (https://dev.to) on GitHub
- 28:04 -- Seeing what the dev.to code base is composed of
- 29:14 -- Getting a list of routes, just like we did for the Flask app
- 29:51 -- Exploring the routes at the code level (some web frameworks have this)
- 31:05 -- Repeating what we did previously to find the dev.to tech stack
- 31:25 -- Finding hints of a linting tool being used is a very good sign for code quality
- 32:02 -- Tests are a great way to see how things work under the hood
- 33:09 -- Going back to dev.to's tech stack
- 34:33 -- Use everything together and your task at hand to determine what to do next
- 35:35 -- Oh yeah! Don't forget to check a project's list of package dependencies
Reference Links
- Build a SAAS app with Flask course: https://buildasaasappwithflask.com
- Dive into Docker course: https://diveintodocker.com
- Changelog Website: https://changelog.com
- Changelog on GitHub: https://github.com/thechangelog/changelog.com
- Dev.to Website: https://dev.to
- Dev.to on GitHub: https://github.com/thepracticaldev/dev.to
How do you tackle learning a new code base? Let me know below.
Top comments (0)