Our code is nicely structured for expansion, but there's one more critical item we should address: version control. You may already be familiar with a version control system (VCS), sometimes called revision control or source code management, but if not, it's an indispensable tool for dealing with a large and changing codebase.
When working on an application, we sometimes think we know what needs to be changed, but it turns out we're wrong. Sometimes we don't know exactly how to code something, and it takes several attempts to find the correct approach. Sometimes we need to revert to code that was changed a long time back. Sometimes we have multiple people working on the same piece of code, and we need to merge their changes together. Version control systems were created to address these issues and more.
There are dozens of different...