文档章节

Web开发人员应当知道的15个开源项目

Dorje
 Dorje
发布于 2011/06/03 16:05
字数 1669
阅读 303
收藏 6
Web开发人员应当知道的15个开源项目 

如今,构建网站和开发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开发人员,在上述这些开源项目中,你用到了哪些?欢迎你在评论中分享你的使用经验和心得。

本文转载自:http://yangchangqing878.iteye.com/blog/926653

Dorje

Dorje

粉丝 14
博文 17
码字总数 707
作品 0
朝阳
高级程序员
私信 提问
Web开发人员应当知道的15个开源项目

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

jobBole
2011/02/24
2.7K
10
对Web开发人员有用的8个网站

编者按:本文是由比利时的Web开发人员Jean-Baptiste Jung分享的,Jung还在《Web开发/设计人员应当知道的15个网站》这篇文章中推荐了15个相关网站。 1. Min.us: 上传图片的最简单方式 任何开发...

jobBole
2011/04/21
2.3K
1
7个让你获益匪浅的开放式前端面试题

翻译:疯狂的技术宅 原文:https://www.indeed.com/hire/interview-questions/front-end-developer 不管你是面试官还是求职者,里面的思路都能让你获益匪浅。 如何保证你的网站或 Web 应用的...

疯狂的技术宅
03/01
0
0
你应当知道的7个Java工具

JClarity – 性能监测工具 它发布于去年9月。围绕java性能,当前这款工具提供了两个产品:Illuminate 和 Censum。 Illuminate是一款性能监测工具,而censum是一种聚焦于垃圾收集日志分析的应用...

一贱书生
2016/11/08
24
0
用好这15类工具,Web开发已成功了一半

  【IT168 评论】Web的发展日新月异,这也使得Web开发者不得不加快脚步,学习新的技术和编程语言。尤其是对于那些大量流量入口的网站来说,跟上技术发展趋势更是尤为重要。为了使得Web开发...

it168网站
2017/03/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

平衡二叉树的建立 c语言范例

#include <stdio.h> #include <stdlib.h> #include <string.h> struct node { int data; int high; struct node *lt, *rt; }; int max(int a, int b) { return a>b?a:b; } ///深度 int deep......

yky20190625
57分钟前
1
0
solr

简介:solr是基于全文检索的企业级应用服务器。 solr入门案列。 配置: (1)配置Solr服务器。 1.解压一个Tomcat 2.部署solr服务到Tomcat中 3.添加solr运行依赖的jar包 (2)配置SolrHome。(...

klmkom
今天
5
0
nginx 可以使用 alias 指定 其他目录,做静态服务器

比如 访问 图片,/images 去到 对应的 硬盘地址去获取。 expires 表示 缓存的意思, 这里缓存 一天

之渊
今天
3
0
linux redis后台运行

daemonize no -> yes /usr/local/redis/redis-4.0.10/src/redis-server /usr/local/redis/redis-4.0.10/redis.conf...

八戒八戒八戒
今天
5
0
SSM(Spring+Spring MVC+Mybatis)框架搭建

一. SSM框架架构及流程介绍 SSM框架,通常是指将spring mvc+spring+mybatis三个框架整合在一起进行工作,spring mvc本身就是spring的一部分,所以这两者之间不用整合,这里主要做的事情就是将...

潜行-L
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部