如今,构建网站和开发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网络框架,它用来帮助快速开发高性能、优秀的网络应用程序。
更多
维基百科上有一份更完整的列表,这个列表包含不同语言的可用网络应用框架。
后话 - 合理利用时间
开发人员有必要花费时间不断了解哪些新软件是可用的,这样对轻松地解决复杂的任务大有裨益。
而且在项目开发之初,花费一些时间做计划和调查也是非常有必要的,因为这样可以明确即将面临的问题,并确定其最佳解决方案。
自己编程来解决每个问题的时代已经结束,如今更多的是灵活使用现有技术来解决问题。
分享到:
相关推荐
在提供的"20个Java开源项目源码下载"压缩包中,包含了多个知名的Java项目,这些项目可以帮助开发者深入理解Java编程、软件架构以及特定领域的最佳实践。以下是这些项目的简要介绍: 1. **ExoPlayer-r2.18.5.zip**:...
"Java开源项目汇总" Java是一种广泛应用的编程语言,它有着庞大的开源社区和丰富的知识体系。本文档汇总了各种Java开源项目,涵盖了Java教程、Java实战、系统设计、devops、工具等方面的知识点。 Java教程 * ...
【标题】"java开源项目源码"所涉及的是Java编程领域的开源项目,这通常意味着它是一个可供学习、研究和自由使用的软件项目。开源项目能够帮助开发者深入理解代码实现,提高编程技能,同时也有助于社区协作和技术创新...
【oschina_git_java 开源项目】是一个集合了Git与Java技术的开源项目,它主要针对的是软件开发领域的版本控制和编程语言应用。Git是目前最流行的分布式版本控制系统,而Java则是广泛使用的编程语言,尤其在企业级...
Java 开源项目中文文档 20160820.epub
阿里作为中国领先的互联网公司,其发布的26款Java开源项目无疑具有极高的参考价值和实践意义。这些项目涵盖了各种领域,包括但不限于Web框架、大数据处理、云计算、物联网(IoT)等,能够帮助开发者拓宽视野,了解最新...
在IT行业中,Java开源项目资源是开发者们宝贵的财富,它们为学习、开发和创新提供了丰富的素材。这篇资源主要聚焦于Java编程语言的开源项目,涵盖了各种工具和源码,可以帮助我们深入了解Java技术栈,提高开发效率,...
Java开源项目目录汇总是一个针对Java开发者的宝贵资源集合,它包含了一系列高质量的开源项目,旨在帮助开发者提升技能、学习新工具和技术。这个压缩包中的"Java开源项目汇总.pdf"很可能是一个详细的列表,列出了各种...
Java的企业级CMS系统,javaEE搜索等等。。你值得拥有。
《Java开源项目集合》 Java,作为世界上最受欢迎的编程语言之一,拥有丰富的开源项目资源,这些项目涵盖了各种领域,从Web开发、大数据处理到机器学习、云计算等。本压缩包"Java 开源项目集合.zip"汇聚了众多优秀的...
java开源项目源代码_java开源项目源代码.zip
【标题】基于sml2h3开源的ddddocr构建的java开源项目 在当前的数字化时代,OCR(Optical Character Recognition,光学字符识别)技术在处理大量文本数据时发挥着重要作用,尤其在文档自动化处理、表格提取等领域。...
在这个"一些Github上超实用的Java项目集合"中,我们发现了一个汇聚了众多高质量Java开源项目的资源库。这个集合旨在帮助开发者们发现并学习优秀的Java实践,提高他们的编程技能,同时也为寻找项目灵感或实际开发需求...
"Java项目开源源码,共111个" 本资源提供了111个Java项目的开源源码,涵盖了各种Java项目类型,包括Web开发、移动应用开发、桌面应用开发等。这些源码可以作为学习Java编程的参考资源,也可以作为实际项目开发的...
标题“BBS的JAVA开源项目”表明这是一个基于Java语言实现的论坛系统,开源意味着其源代码对外公开,允许开发者查看、学习甚至修改和分发。描述中提到“这是一个JAVA的BBS开源项目,可以用的”,确认了项目的可用性和...
在本节中,我们将深入探讨Java开源项目,特别是在第六章所涵盖的主题。开源项目是Java开发者学习、实践和贡献代码的重要资源,它们提供了丰富的实际应用示例,有助于提升编程技能和理解复杂系统的构建。 首先,Java...
该项目为基于Maven的多框架融合与多视图技术整合的Java开源项目设计源码,包含314个文件,涵盖187个Java源文件、45个XML配置文件、28个JSP文件、22个JavaScript文件、7个属性文件、6个JAR包文件、4个SQL脚本文件、4...
【Java开源项目推荐】 在Java开发领域,GitHub是获取开源项目的重要平台,而"awesome-java"集合了众多高质量的Java开源项目。这个列表包含了各种类型的项目,从实战应用到学习教程,适合不同级别的开发者。以下是几...
这些开源项目涵盖了Java开发的多个领域,从数据库连接池到微服务、从区块链到代码生成工具,提供了广泛的功能选择。对于开发者来说,研究这些源码不仅可以提升技术能力,还可以借鉴其设计思路,应用于自己的项目中。...