`
yzd
  • 浏览: 1813405 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多
<p>转载链接:http://sd.csdn.net/a/20110225/292527.html?1302045378</p>
<p></p>
<p></p>
<p>如今,构建网站和开发Web应用程序已经不仅要求开发人员是一名优秀的程序员,更需要聪明的程序员。这也就是说,在可能的情况下,重复使用已有的代码和应用程序,而不是自己重头开始。</p>
<p>开源由来已久,并且很多网站的构建也使用了开源。开发人员都知道Linux、Apache、MySQL及PHP(LAMP)。</p>
<p>但是除那些之外的其他开源项目呢?作为一名Web开发人员,你可以借助诸多可用的项目,以节省开发时间,或提高程序性能。</p>
<p>下面让我们看一下哪些开源项目可供大家免费使用。</p>
<p><strong><span style="font-size: small;">可供使用的新型数据库</span>
</strong>
</p>
<p>传统上讲,你可能习惯使用MySQL。尽管MySQL是一个非常棒的数据库,但诸多试图解决MySQL存在的问题的新型数据库已经问世。</p>
<p><strong>1.<a href="http://www.oschina.net/p/mongodb">MongoDB</a>
</strong>
</p>
<p>MongoDB就是的“非关系型”数据库之一。它扩展性强、性能高。</p>
<p><strong>2.<a href="http://www.oschina.net/p/cassandra">Apache Cassandra</a>
</strong>
</p>
<p>与MongoDB相似,Apache Cassandra也是一种“非关系型”数据库,它亦扩展性强、性能高。并且能够很好地处理庞大而活跃的数据集。(编注:Facebook用Cassandra来做邮箱搜索。)</p>
<p><strong>更多</strong>
</p>
<p>根据需要,你还有更多的选择。<a rel="nofollow" href="http://en.wikipedia.org/wiki/Category:Open_source_database_management_systems" target="_blank">请参阅维基百科的这个列表</a>
。</p>
<p><span style="font-size: small;"><strong>缓存数据</strong>
</span>
</p>
<p>因为需要频繁使用一些数据,所以相比每次去数据库中查询,把这些数据存放在内存中更加合理。这能够大大提高Web应用程序的运行速度。</p>
<p><strong>3.<a href="http://www.oschina.net/p/memcached">Memcached</a>
</strong>
</p>
<p>Memcached是一种在内存中缓存小型数据块的简单但强大的解决方法。(编注:Facebook运行着成千上万的Memcached服务器,借以及时处理TB级的缓存数据。)</p>
<p><strong>4.<a href="http://www.oschina.net/p/redis">Redis</a>
</strong>
</p>
<p>Redis的作用与Memcached相同,但包含更多的特性。例如,它也可以存储本应当永久性保存在磁盘上的数据。</p>
<p><span style="font-size: small;"><strong>加快网络请求的速度</strong>
</span>
</p>
<p>大多数网站使用Apache的网络服务器来提供服务。它能够很好地服务于大多数网站,但是一旦网站的访问量增大,就需要做进一步优化。</p>
<p><strong>5.<a href="http://www.oschina.net/p/nginx">Nginx</a>
</strong>
</p>
<p>Nginx是一种与Apache非常相像的网络服务器,但它的速度相当快。作为负载平衡器,它常用于处理静态内容,如图像文件。</p>
<p><strong>6.<a href="http://www.oschina.net/p/varnish">Varnish</a>
</strong>
</p>
<p>Varnish是位于常规网络服务器之前的高速缓存器。它将所有热门内容放入内存,直接对其处理,无须将所有内容都传给网络服务器。(编注:Facebook用Varnish处理图片和用户照片,每天都要处理十亿级的请求。Facebook所用到的其他开源项目,请参阅《<a href="http://www.jobbole.com/entry.php/73" target="_blank">揭秘Facebook背后的那些软件</a>
》一文。)</p>
<p><span style="font-size: small;"><strong>轻松管理内容</strong>
</span>
</p>
<p>如果你在构建一个允许用户添加及编辑内容的网站,那么你可能需要一个内容管理系统(CMS)。CMS能够帮助开发人员轻松地管理博客及网站,并且提供大量的能够扩展网站功能的插件。</p>
<p><strong>7.<a href="http://www.oschina.net/p/wordpress">WordPress</a>
</strong>
</p>
<p>虽然WordPress是个博客平台,但它也能用于管理大大小小的网站。</p>
<p><strong>8.<a href="http://www.oschina.net/p/drupal">Drupal</a>
</strong>
</p>
<p>Drupal是一个可用于构建强扩展性、高灵活性网站的完整平台。</p>
<p><strong>更多</strong>
</p>
<p>还有很多可用的内容管理系统。<a rel="nofollow" href="http://en.wikipedia.org/wiki/List_of_content_management_systems" target="_blank">请参阅维基百科的这个大型列表</a>
。</p>
<p><span style="font-size: small;"><strong>交互式的网络UI</strong>
</span>
</p>
<p>如今,你可以使用JavaScript和AJAX技术,开发一个类似桌面应用程序那样的以多种方式运行的网络应用。使用JavaScript框架,能够轻松地开发大型的网络应用程序。</p>
<p><strong>9.<a href="http://www.oschina.net/p/jquery">JQuery</a>
</strong>
</p>
<p>JQuery是一个带插件的框架,这些插件有主构建包含AJAX交互及动画的动态网站。</p>
<p><strong>10.<a href="http://www.oschina.net/p/mootools">MooTools</a>
</strong>
</p>
<p>MooTools就和jQuery一样,是一个使用JavaScript构建强大网络应用程序的框架。</p>
<p><strong>更多</strong>
</p>
<p>如果你想尝试一下其他选择,<a rel="nofollow" href="http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks" target="_blank">请参考维基百科的这个列表</a>
。</p>
<p><span style="font-size: small;"><strong>其他比较炫的资源</strong>
</span>
</p>
<p>当你开始开发一个复杂的网络应用程序时,很多软件、库及模型能够帮你解决难题,如果不参考这些资源,你可能会花费大量的时间。以下是两个入门的例子。</p>
<p><strong>11.<a href="http://www.oschina.net/p/nodejs">Node.js</a>
</strong>
</p>
<p>Node.js是一个事件驱动的输入/输出框架,支持用JavaScript编写应用程序,并在V8 JavaScript引擎上运行。这是一种开发快速、可扩展网络程序的很棒的方式。</p>
<p><strong>12.<a href="http://www.oschina.net/p/rabbitmq">RabbitMQ</a>
</strong>
</p>
<p>RabbitMQ是一种可靠的、可扩展的信息传送系统,它能够处理高吞吐量。如果需要在系统之间或应用程序之间交换数据,比起传统的解决方案或直接将数据存储在数据库中,信息传送系统的更能胜任这一工作。</p>
<p><span style="font-size: small;"><strong>使用框架来加速开发进程</strong>
</span>
</p>
<p>不管你是使用PHP还是其他的编程语言,有很多不同的可用框架能够帮助你加速开发进程,并能够更加轻松地管理代码。</p>
<p><strong>13.<a href="http://www.oschina.net/p/symfony">Symfony</a>
</strong>
</p>
<p>Symfony是一个PHP框架,它包含很多能够加速开发复杂网络应用程序的组件及工具。同时它包含社区提供的1000多个插件。</p>
<p><strong>14.<a href="http://www.oschina.net/p/ruby+on+rails">Ruby on Rails</a>
</strong>
</p>
<p>对Ruby语言而言,Ruby on Rails是最流行的可用框架。</p>
<p><strong>15.<a href="http://www.oschina.net/p/django">Django</a>
</strong>
</p>
<p>Django是一个Python网络框架,它用来帮助快速开发高性能、优秀的网络应用程序。</p>
<p><strong>更多</strong>
</p>
<p>维基百科上有一份更完整的列表,<a rel="nofollow" href="http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks" target="_blank">这个列表包含不同语言的可用网络应用框架。</a>
</p>
<p><span style="font-size: small;"><strong>后话-合理利用时间</strong>
</span>
</p>
<p>开发人员有必要花费时间不断了解哪些新软件是可用的,这样对轻松地解决复杂的任务大有裨益。</p>
<p>而且在项目开发之初,花费一些时间做计划和调查也是非常有必要的,因为这样可以明确即将面临的问题,并确定其最佳解决方案。</p>
<p>自己编程来解决每个问题的时代已经结束,如今更多的是灵活使用现有技术来解决问题。</p>
<p>不知正在看本文的Web开发人员,在上述这些开源项目中,你用到了哪些?欢迎你在评论中分享你的使用经验和心得。</p>
<p>原文链接:<a href="http://www.jobbole.com/entry.php/503" target="_blank">http://www.jobbole.com/entry.php/503</a>
</p>
分享到:
评论

相关推荐

    C++开源程序库 C++开源程序库

    传统上Qt被认为是可移植的GUI库,但实际上Qt现在已经是一个比较完整的可移植应用程序框架了,其中包含了大量的工具,比如正则表达式、Web和 Socket类、2D和3D图形、XML解析、SQL类等,甚至还包括了一个完整的容器...

    基于WEB的企业用能信息在线填报系统设计

    本文设计基于WEB技术搭建企业用能信息在线填报系统,在ASP.NET动态WEB应用程序开发平台上使用C#语言进行设计,方便任何用户在任何能接入企业内部网络的计算机上,使用浏览器就能完成相应查阅、填报和管理操作

    asp.net知识库

    Web开发: 使用URL重写WEB主题切换 如何在Asp.Net1.1中实现页面模板(所谓的MasterPage技术) Tool Tip 示例(FILTER版) Tool Tip示例 (htc版) 一个.net发送HTTP数据实体的类 按键跳转以及按Enter以不同参数提交,及...

    spring-Quartz(作业调度)

    Quartz 是个开放源码项目,提供了丰富的作业调度集。在这篇文章中,软件工程师 Michael Lipton 和IT 架构师 Soobaek Jang 对 Quartz API 进行了介绍,从对框架的一般概述开始,并以一系列展示 Quart 基本特性的代码...

    常用J2EE应用服务器简介.docx

    Tomcat服务器是一个免费的开源的Web 应用服务器,是Apache 软件基金会的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,运行时占用的系统资源小...

    禅道项目管理软件6.0.stable

    禅道项目管理软件6.0.stable版本于6月25日正式发布,该版本在6.0.beta1基础上进一步调整界面,修复Bug。并使用lazarus重新编写了禅道桌面提醒软件。 提醒:此次版本我们有若干更新比较重要,请大家知晓: 1、UI框架...

    Quartz_2.2.1_API

    Quartz 是个开放源码项目,提供了丰富的作业调度集。在这篇文章中,软件工程师 Michael Lipton 和 IT 架构师 Soobaek Jang 对 Quartz API 进行了介绍,从对框架的一般概述开始,并以一系列展示 Quart 基本特性的代码...

    网络版“瑞士军刀”CyberChef.zip

    但是应当注意,分析师不是专业开发人员,并且代码没有经过同行评审以符合正式规范。功能:拖放自动 “Bake”断点保存并加载 “recipes”搜索突出显示保存到文件并从文件加载 标签:CyberChef

    学生成绩信息管理系统论文 JSP 完整版

    摘要 目前,学校工作繁杂、资料重多,管理...当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都想到:噢,这正是我想要的。于是Java成了一颗耀眼的明星,丑小鸭一下了变成了白天鹅。 1.4.3 编码

    操作系统(内存管理)

    不过,即使是在这样一个简单的计算机中,您也会有问题,尤其是当您不知道程序的每个部分将需要多少内存时。如果您的空间有限,而内存需求是变化的,那么您需要一些方法来满足这些需求: 确定您是否有足够的内存来...

    NodeLog统计方案yog-log.zip

    处于debug模式下Log将在控制台输出错误日志,并根据错误日志类型显示不同的颜色,方便开发人员调试(debug模式下依旧会写日志到文件)。有两种方法开启debug模式: 开发时 :yog的config.json的yogLogger arguments...

    leetcode中国-cup-of-wine:重新学习代码

    web前端开发,勉强算是全栈,然而对于职业未来越来越恐惧,业务做的累到死,感觉没有什么成长,觉得刚毕业的小朋友都能吊打我。 所以能怎么办呢?按照老方法,成长看牛人,搜了搜国外4大厂大佬们的成长履历水平之类...

Global site tag (gtag.js) - Google Analytics