What is a codebase?
All web development projects involve similar processes near the start of the project. Setting up files, creating a database with tables for content, customising configuration, creating a content-management area, and so on. After these similar processes have been completed, this is where projects differ and the bespoke needs of the project come into play.
A codebase provides a starting point, or a base, for developers to start from when building new websites. It means that we don’t need to repeat ourselves and do the same work each time we start a new website, and we can create a solid foundation on which to build new projects.
Here at First Internet we already have a codebase, which we internally refer to as the ‘cakebase’, because it’s built using a framework called Cake.
Why we’re rebuilding
However, the time has come to rebuild our codebase entirely.
As we all know, the technology world moves quickly. We are keen to keep up to date with the latest techniques, methodologies and processes in order to keep the code we use efficient and optimised. Our current codebase, while robust, has reached a point where we can’t improve it without replacing it entirely.
There are ways of doing things now that didn’t exist when our current codebase was built, ways of doing things that will ensure that our new codebase is even more future-proof, long-lasting and flexible to emerging technologies than the current one.
How we’re rebuilding
We always use a framework when building our codebases. A framework basically provides conventions and support to developers in their coding, and helps to keep the code standardised and easily maintainable between different developers. Imagine trying to finish off writing a report where the original author has used a drastically different writing style to yourself, you would need to adjust your own writing style to fit your content in. The same can be said for working on code, and a framework helps reduce the need for this adjustment.
Our new codebase will use an emerging framework called Laravel, and what’s exciting and different about this framework firstly its use of new functionality in code, and secondly how much it leverages the power of third-party modules and service providers. It abstracts away different parts of the functionality into separate, self-contained and re-usable modules.
For example, there is a separate module for communicating with the database, one for authenticating logged in users to a CMS, one for providing notifications or alert messages, one for helping to run tests to ensure the stability of the system, and so on. All of these modules are maintained and regularly updated by other developers in the open source community, meaning that we as developers benefit from others’ security updates and bug fixes.
Writing code in this way ensures that each module is responsible for its own area, and we can rely on the creators of these modules to maintain and update them, leaving us to work on the code that is unique to each project.
We’re working hard to make this new codebase robust and flexible, to allow us to jumpstart future projects and spend more time on the bespoke functionality of our client’s websites.