Working with Existing Code and First Deployment
While most of the projects we’ve done throughout this course have started from scratch with primarily self-generated code (also referred to as “greenfield projects”), there are obviously many scenarios in which the projects you work on as a developer — whether for a job or via open-source contributions — will have been pre-established by other developers.
In these situations, the way that you approach the code base is extremely important and can mean the difference between being a constructive or destructive addition to a team/project. Our most recent reading focused on recommended methodology when approaching an existing project for the first time.
The lesson recommended us to start by first asking a few questions and exploring within the project to get answers questions before ever touching a line of code. Questions to ask include:
- What versions are supported in this application?
- Are they installed on your computer?
- Which features are missing that you usually use?
- What databases does the project require?
- Is there an automated test suite, and what does it look like?
The answers to these questions can typically be found in one of the following areas: the READMEs, wikis, Gemfiles, and config files. Projects will often have a ‘setup script’ as well, which is an extremely helpful orientation document for first-time interaction with a project.
As you begin to add your own code to an existing project, it’s important to continuously create and run tests against the new code to make sure you’re not breaking existing functionality. We practiced using this approach and workflow by forking an existing project of one of our instructors from GitHub and working locally from our own computers.
We also learned about and practiced app deployment through the use of Heroku. Deployment is the process of getting your application to run in a live environment — such as the web. Heroku is a cloud-based platform service that enables developers to efficiently deploy applications to the web without having to worry about and manage complex infrastructure.
There are many ways to deploy to Heroku, but I did my initial effort via my computer’s terminal using Git. It was a lot of fun to see the app running outside of the ‘localhost’ on my browser, and was also helpful to see first-hand how quickly you can get your app live on the web— explains why thousands of companies do use Heroku to deploy their own sites.
I’m going to be jumping into my final project this coming week and the goal is to have the app fleshed out and deployed (via Heroku) by our Demo Day on October 6th (eek). So now, back to work!
Song of the Day: “In My Way” by MUNA