Why Frameworks are Your Best Friend
What is a Web Framework?
One of the biggest time-sinks in web development is repeating code. Code repetition adds time, difficulty, and cost to every project. Web frameworks remove this roadblock by providing a library of core functionalities that are commonly used by websites and web applications. This can be anything from sending emails to database interaction to building and validating forms.
A developer can now perform these tasks with a few lines of code instead of hundreds. Not only that, but that developer can hand it off to another who is familiar with the framework with little to no difficulty. Not only that, but the same functionality can be reused in subsequent projects. This makes maintaining a large volume of projects authored by several different developers relatively simple.
What Makes an Excellent Framework?
So frameworks are great, right? But how with dozens of web frameworks available does a developer choose one and stick with it? There are several key factors that influence the decision to go with a framework. These are just a few of those factors, but they are the ones we feel are most important.
- Is it Feature Rich? A framework should have most or all of the core features that the developer is going to need for a wide variety of projects.
- Is it Scalable? The framework should work as well for a micro-site as it does for a large multi-language site or responsive websites.
- Is it Well Documented and Updated Regularly? If a framework is seldom updated or is poorly documented the developer might spend as much time figuring it out or fixing bugs as they would simply building the functionality themselves.
- Is it Flexible? Some frameworks force the developer into a way of thinking or doing things. As soon as an asset becomes an obstacle it has completely defeated its purpose.
So What Does allwebcafe Use?
allwebcafe works primarily in CodeIgniter, a popular PHP framework. It's robust, versatile, well supported, and never holds us back. As a developer who's had experience working in legacy PHP code versus CodeIgniter projects, I much prefer to look under the hood of CodeIgniter sites. There's no guessing when it comes to where various aspects of the site's functionality are located. I also don't have to look far for documentation or support.
When building new sites, it's a struggle to find a good reason not to use CodeIgniter. If there's any form functionality, database interaction, or email generation, I'd be throwing away time trying to build it from scratch and I'd just be making it more difficult for the next developer. CodeIgniter is also the foundation of ExpressionEngine, our CMS of choice for sites that need a high degree of client customization.
If your a developer working with frameworks do you have a preference? Why did you or your team decide to go with that choice?