Today, building websites and developing Web Applications Program Developers are not only required to be excellent programmers, but also smart programmers. This means that, if possible, the existing Code And the application, rather than starting with your own.
Open source has been around for a long time, and many websites have also been built using open source. Developers all know about Linux, Apache, MySQL, and PHP (LAMP ).
But what about other open-source projects? As a web developer, you can use many available projects to save development time or improve program performance.
Let's take a look at which open-source projects are available for free.
Available new databases
Traditionally, you may be used to using MySQL. Although MySQL is a very good database, many new databases that try to solve the problems of MySQL have come into being.
1. MongoDB
MongoDB is one of the "non-relational" databases. It has high scalability and high performance.
2. Apache cassandra
Similar to MongoDB, Apache Cassandra is also a non-relational database with high scalability and performance. And can well process large and active datasets. (Editor's note: Facebook uses Cassandra for email search .)
More
You have more options as needed. See this list in Wikipedia.
Cache data
Because data needs to be frequently used, it is more reasonable to store the data in the memory than to be queried in the database each time. This greatly improves the running speed of Web applications.
3. memcached
Memcached is a simple but powerful solution for caching small data blocks in memory. (Note: Facebook runs thousands of memcached servers to process terabytes of cached data in a timely manner .)
4. redis
Redis functions the same as memcached, but includes more features. For example, it can also store data that should be permanently stored on the disk.
Accelerate network requests
Most websites use Apache network servers to provide services. It can serve most websites well, but further optimization is required once the website's access volume increases.
5. nginx
Nginx is a network server that is very similar to Apache, but it is fast. As a Load balancer, it is often used to process static content, such as files.
6. Varnish
Varnish is a cache that is located before a regular network server. It puts all popular content into the memory and processes it directly without passing all the content to the network server. (Note: Facebook uses varnish to process images and user photos. Each day, It processes billions of requests. For other open-source projects used by Facebook, see the article "uncover the software behind Facebook .)
Easy content management
If you are building a website that allows users to add and edit content, you may need a Content Management System (CMS ). CMS helps developers easily manage blogs and websites and provides a large number of plug-ins that can expand website functions.
7. WordPress
Although WordPress is a blog platform, it can also be used to manage large and small websites.
8. Drupal
Drupal is a complete platform for building highly scalable and flexible websites.
More
There are also many available content management systems. See this large list in Wikipedia.
Interactive Network UI
Today, you can use JavaScript and Ajax technologies to develop a network application that runs in multiple ways like a desktop application. With the Javascript framework, you can easily develop large-scale network applications.
9. jquery
Jquery is a framework with plug-ins. These plug-ins mainly construct dynamic websites that contain Ajax interaction and animation.
10. mootools
Like jquery, mootools is a framework that uses JavaScript to build powerful network applications.
More
If you want to try other options, refer to the Wikipedia list.
Other brilliant Resources
When you start to develop a complex network application, many software, libraries, and models can help you solve the problem. If you do not refer to these resources, you may spend a lot of time. The following are two examples of getting started.
11. node. js
Node. JS is an event-driven input/output framework that supports writing applications in JavaScript and running on the V8 JavaScript Engine. This is a great way to develop fast and scalable network programs.
12. rabbitmq
Rabbitmq is a reliable and scalable information transmission system that can handle high throughput. If data needs to be exchanged between systems or between applications, the information transfer system is more competent than traditional solutions or directly storing data in databases.
Use the framework to accelerate the development process
Whether you are using PHP or otherProgramming LanguageThere are many different available frameworks that can help you accelerate the development process and manage code more easily.
13. symfony
Symfony is a PHP framework that contains many components and tools that can accelerate the development of complex network applications. It also containsCommunityMore than 1000 plug-ins are provided.
14. Ruby on Rails
For the ruby language, Ruby on Rails is the most popular available framework.
15. Django
Django is a python network framework used to help develop high-performance and excellent network applications quickly.
More
Wikipedia provides a more complete list of available network application frameworks in different languages.
After-make proper use of time
It is necessary for developers to spend time learning which new software is available, which is of great benefit for easily solving complex tasks.
At the beginning of project development, it is also necessary to spend some time planning and investigating, because it can clarify the problems to be faced and determine its best solution.
The era of Self-programming to solve each problem has ended, and now it is more flexible to use existing technologies to solve the problem.
I do not know the Web developers who are reading this article. In the above open source projects, what do you use? You are welcome to share your experience and experience in the comments.