Building websites and web applications today is not only about being a great programmer, it’s even more important to be a smart programmer. This means to re-use existing code and applications when possible instead of re-inventing the wheel.
But what about all the other open source projects out there? As a web developer you can save lots of time or optimize the performance of your applications by using many of the other projects that are available.
Lets take a look on what’s out there, free for everyone to use.
New databases on the block
Traditionally you might have been using MySQL. Although MySQL still is a great database many new alternatives has shown up trying to solve some of the issues MySQL has.
MongoDB is one of the new so-called “NoSQL” databases. It’s scalable and offers high performance.
Apache Cassandra is similar to MongoDB in that it’s a “NoSQL” database, which is scalable, and offers high performance. It works well with very large and active data sets.
There are lots of more alternatives out there to choose from depending on your needs. Take a look at this list in Wikipedia.
Cache your data
As some data is used frequently it makes sense to put it in memory instead of querying a database each time. This can speed up a web application greatly.
Memcached is a simple but powerful way to cache small chunks of data in memory.
Redis can be used in the same way as Memcached but also includes many more features. For example it can also store data that should be persistent on disk.
Speeding up web requests
Most websites use the Apache web server to serve pages. This works great for most sites, but as soon as you start to get lots of traffic you might want to optimize things a bit.
Nginx is a web server, much like Apache, but it’s extremely fast. It’s often used to serve static content such as images or as a load balancer.
Varnish is a cache that you put in front of your regular web server. It works by putting all your popular content in memory and serves it directly, instead of having to pass everything on to your web server.
Manage your content easily
If you’re building a website which will have content that will be added and edited by writers you want to have a content management system (CMS). A CMS makes it easy to manage blogs and websites and also offers lots of plugins that can extend the functionality of your site.
While WordPress is a blogging platform it can also be used to manage whole websites, big and small.
Drupal is a complete platform that can be used to build scalable and flexible websites.
Having an interactive web user interface
JQuery is a framework with plugins to help build dynamic websites with AJAX interaction and animations.
If you want to try any of the other alternatives look through the list in this Wikipedia entry.
Other cool stuff
When you start to build complex web applications there are lots of software, libraries and modules that can help you solve problems that would otherwise take a lot of time. Below are two examples just to get you started.
RabbitMQ is a reliable and scalable messaging system that can handle high throughput. If you need to exchange data between systems or applications a messaging system is a great way to do this with lots of benefits compared to a custom solution or storing the data in a database.
Use a framework to speed up development
Whether you are using PHP or another language there are several different frameworks available that can help you speed up development and make your code easier to manage.
Symfony is a PHP framework that includes components and tools to help you build complex web applications faster. It also has over 1,000 plugins contributed by the community.
For fans of the Ruby language, Ruby on Rails is the most popular framework available.
Django is a Python web framework developed to help you build high-performing and elegant web applications quickly.
See this list on Wikipedia for a more complete list of web application frameworks available for different languages.
Spend your time wisely
As a developer it’s always worth the time to keep up to date on what new software is available as it can help you solve complex tasks easily.
Often time spent planning and doing research at the start of a project is well worth it since you can identify upcoming issues and how to solve them in the best way.
The days where you program your way out of every issue are over, it’s more about using existing technology in smart ways.