如今,构建网站和开发Web应用程序已经不仅要求开发人员是一名优秀的程序员,更需要聪明的程序员。这也就是说,在可能的情况下,重复使用已有的代码和应用程序,而不是自己重头开始。

开源由来已久,并且很多网站的构建也使用了开源。开发人员都知道Linux、Apache、MySQL及PHP(LAMP)。

但是除那些之外的其他开源项目呢?作为一名Web开发人员,你可以借助诸多可用的项目,以节省开发时间,或提高程序性能。

下面让我们看一下哪些开源项目可供大家免费使用。

可供使用的新型数据库

传统上讲,你可能习惯使用MySQL。尽管MySQL是一个非常棒的数据库,但诸多试图解决MySQL存在的问题的新型数据库已经问世。

1.MongoDB

MongoDB就是的“非关系型”数据库之一。它扩展性强、性能高。

2.Apache Cassandra

与MongoDB相似,Apache Cassandra也是一种“非关系型”数据库,它亦扩展性强、性能高。并且能够很好地处理庞大而活跃的数据集。(编注:Facebook用Cassandra来做邮箱搜索。)

更多

根据需要,你还有更多的选择。请参阅维基百科的这个列表。

缓存数据

因为需要频繁使用一些数据,所以相比每次去数据库中查询,把这些数据存放在内存中更加合理。这能够大大提高Web应用程序的运行速度。

3.Memcached

Memcached是一种在内存中缓存小型数据块的简单但强大的解决方法。(编注:Facebook运行着成千上万的Memcached服务器,借以及时处理TB级的缓存数据。)

4.Redis

Redis的作用与Memcached相同,但包含更多的特性。例如,它也可以存储本应当永久性保存在磁盘上的数据。

加快网络请求的速度

大多数网站使用Apache的网络服务器来提供服务。它能够很好地服务于大多数网站,但是一旦网站的访问量增大,就需要做进一步优化。

5.Nginx

Nginx是一种与Apache非常相像的网络服务器,但它的速度相当快。作为负载平衡器,它常用于处理静态内容,如图像文件。

6.Varnish

Varnish是位于常规网络服务器之前的高速缓存器。它将所有热门内容放入内存,直接对其处理,无须将所有内容都传给网络服务器。(编注:Facebook用Varnish处理图片和用户照片,每天都要处理十亿级的请求。Facebook所用到的其他开源项目,请参阅《揭秘Facebook背后的那些软件》一文。)

轻松管理内容

如果你在构建一个允许用户添加及编辑内容的网站,那么你可能需要一个内容管理系统(CMS)。CMS能够帮助开发人员轻松地管理博客及网站,并且提供大量的能够扩展网站功能的插件。

7.WordPress

虽然WordPress是个博客平台,但它也能用于管理大大小小的网站。

8.Drupal

Drupal是一个可用于构建强扩展性、高灵活性网站的完整平台。

更多

还有很多可用的内容管理系统。请参阅维基百科的这个大型列表。

交互式的网络UI

如今,你可以使用JavaScript和AJAX技术,开发一个类似桌面应用程序那样的以多种方式运行的网络应用。使用JavaScript框架,能够轻松地开发大型的网络应用程序。

9.JQuery

JQuery是一个带插件的框架,这些插件有主构建包含AJAX交互及动画的动态网站。

10.MooTools

MooTools就和jQuery一样,是一个使用JavaScript构建强大网络应用程序的框架。

更多

如果你想尝试一下其他选择,请参考维基百科的这个列表。

其他比较炫的资源

当你开始开发一个复杂的网络应用程序时,很多软件、库及模型能够帮你解决难题,如果不参考这些资源,你可能会花费大量的时间。以下是两个入门的例子。

11.Node.js

Node.js是一个事件驱动的输入/输出框架,支持用JavaScript编写应用程序,并在V8 JavaScript引擎上运行。这是一种开发快速、可扩展网络程序的很棒的方式。

12.RabbitMQ

RabbitMQ是一种可靠的、可扩展的信息传送系统,它能够处理高吞吐量。如果需要在系统之间或应用程序之间交换数据,比起传统的解决方案或直接将数据存储在数据库中,信息传送系统的更能胜任这一工作。

使用框架来加速开发进程

不管你是使用PHP还是其他的编程语言,有很多不同的可用框架能够帮助你加速开发进程,并能够更加轻松地管理代码。

13.Symfony

Symfony是一个PHP框架,它包含很多能够加速开发复杂网络应用程序的组件及工具。同时它包含社区提供的1000多个插件。

14.Ruby on Rails

对Ruby语言而言,Ruby on Rails是最流行的可用框架。

15.Django

Django是一个Python网络框架,它用来帮助快速开发高性能、优秀的网络应用程序。

更多

维基百科上有一份更完整的列表,这个列表包含不同语言的可用网络应用框架。

后话-合理利用时间

开发人员有必要花费时间不断了解哪些新软件是可用的,这样对轻松地解决复杂的任务大有裨益。

而且在项目开发之初,花费一些时间做计划和调查也是非常有必要的,因为这样可以明确即将面临的问题,并确定其最佳解决方案。

自己编程来解决每个问题的时代已经结束,如今更多的是灵活使用现有技术来解决问题。

不知正在看本文的Web开发人员,在上述这些开源项目中,你用到了哪些?欢迎你在评论中分享你的使用经验和心得。

Web开发人员应当知道的15个开源项目相关推荐

  1. 每个Web开发人员应该知道的12个终端命令

    Tips 原文作者:Danny Markov 原文地址:12 Terminal Commands Every Web Developer Should Know About 终端是开发人员的武器库中最 ...

  2. 开发人员应该知道的15个吸引力的jquery lightbox插件推荐

    jQuery 是非常流行的JS框架,其俨然已成了开发者的必备工具,其中的jQuery Lightbox插件更是为广大开发者所喜爱.它惊人的特征之一是jQuery Lightbox插件有很多变化.你可以 ...

  3. 每个JavaScript开发人员应该知道的33个概念

    每个JavaScript开发人员应该知道的33个概念 介绍 创建此存储库的目的是帮助开发人员在JavaScript中掌握他们的概念.这不是一项要求,而是未来研究的指南.它基于Stephen Curti ...

  4. C#开发人员应该知道的13件事情

    C#开发人员应该知道的13件事情 本文讲述了C#开发人员应该了解到的13件事情,希望对C#开发人员有所帮助. 1. 开发过程 开发过程是错误和缺陷开始的地方.使用工具可以帮助你在发布之后,解决掉一些问 ...

  5. Java开发人员应该知道的5大Spring Boot功能

    您可能已经听说过Spring Boot,这是用不到140个字符创建一个Spring Web应用程序的神奇力量,可以在一条推文中编写这些字符,但这到底意味着什么? 哪些功能可以使Spring Boot具 ...

  6. php开发手册要看完吗,9个开发人员应该知道的PHP库

    9个开发人员应该知道的PHP库大多都是国外的资源,不过有了这些PHP库的支持,大家今后进行开发一定能加快速度,不会进行简单的重复劳动. 1. ReCAPTCHA The reCAPTCHA 库让你可以 ...

  7. C# Development 13 Things Every C# Developer Should Know--C#开发人员应该知道的13件事情

    原文链接:https://dzone.com/refcardz/csharp 本文讲述了C#开发人员应该了解到的13件事情,希望对C#开发人员有所帮助. 1. 开发过程 开发过程是错误和缺陷开始的地方 ...

  8. web项目开发人员配比_Web开发人员应该知道的10个别名

    开发人员和精通技术的人总是被数字所吸引,因此,数字缩写或基于数字的单词很快就受到他们的喜爱,这是理所当然的. 缩写词被用来缩写长单词,这些单词太麻烦了以至于无法一直准确地键入 . 如果缩写同时包含字母 ...

  9. java api 开发_Java开发人员应该知道的前20个库和API

    java api 开发 优秀且经验丰富的Java开发人员的特征之一是对API的广泛了解,包括JDK和第三方库. 我花了很多时间来学习API,尤其是在阅读了Effective Java 3rd Edit ...

最新文章

  1. 吴恩达《深度学习》第四门课(2)卷积神经网络:实例探究
  2. MongoDb 中 serverStatus was very slow 的原因分析
  3. LeetCode66——Plus One(一个整数用数组存储,然后在末尾加1)
  4. 记录一下2019年-2020年期间的学习、工作经历
  5. 2.Linux/Unix 系统编程手册(上) -- 基本概念
  6. Redis 常用命令
  7. 设定pic单片机端口为输入_PIC单片机入门_输入输出端口详解
  8. 怎么在Excel中生成Latex代码——excel2latex插件
  9. 实对称矩阵的特征值求法_机器学习和线性代数 - 特征值和特征向量
  10. C#开发DIY照片书软件(C#图形图像开发)
  11. Android回声消除调研 20220321
  12. stm32 带通滤波器_【安富莱——DSP教程】第37章 FIR滤波器的实现
  13. 三阶魔方大中小魔公式_三阶魔方还原图文教程-番茄魔方
  14. 清华计算机自主招生试题,清华、北大等高校历年自主招生试题及答案汇总
  15. Jsp四种变量作用范围
  16. MAC更新系统网络连接中断
  17. Redis(八):zset/zadd/zrange/zrembyscore 命令源码解析
  18. php模板读取工具,打造自己的php半自动化代码审计工具
  19. redis放入对象的几种方式
  20. word文档的生成以及echarts图片的插入

热门文章

  1. 信息学奥赛一本通(1216:红与黑)
  2. Little Elephant and Shifts(CF-220C)
  3. mysql source code_Source Code
  4. 笔记本安装centos7.6网络的配置_可以放入口袋里面的笔记本电脑:国产黑科技,户外工程师必备利器...
  5. linuxPci驱动获取指定设备bus、device以及devfn数据方式
  6. RepPoints(本质是可变形卷积DCN)再理解
  7. 三种方法可以使用StyleGAN预先训的生成器
  8. ROS学习—opencv使用之图片传输
  9. yaf php源码,PHP-Yaf执行流程-源码分析
  10. js中string字符串转换为JSON对象 - 方法大全(4种)