内容简介:【51CTO.com快译】如今,面对各种各样的网站开发框架,您难免会产生“选择恐惧症”。本文将从客户和开发人员的角度出发,帮助您为Web应用的构建做出明智的框架选择。让我们首先来对如下问题进行考量:通过上述一系列的问题,您应该对自己的需求有了一个清晰的了解。下面,我们准备了本年度最流行的七个网站开发框架,供您进一步参考与选择。
【51CTO.com快译】如今,面对各种各样的网站开发框架,您难免会产生“选择恐惧症”。本文将从客户和开发人员的角度出发,帮助您为Web应用的构建做出明智的框架选择。
让我们首先来对如下问题进行考量:
- 您需要选择那些能够支持快速应用开发的框架吗?
- 您选择架构的真正目的是什么?
- 它是否能够支持您的特定项目、及所需的各种特性?
- 它是否拥有一个庞大的支持社区?
通过上述一系列的问题,您应该对自己的需求有了一个清晰的了解。下面,我们准备了本年度最流行的七个网站开发框架,供您进一步参考与选择。
1.Angular
Angular是一种适用于前端开发的、且开源的JavaScript框架。大多数动态网站应用都会使用该框架来构建。
基于“模型 - 视图 - 控制器”的Angular架构,有着固定的组织结构,因此它非常适用于那些具有单页面的应用程序。
该框架包含了开发者需要掌握的各种控制器、指令集和其他组件。因此,其学习曲线较为“陡峭”。
另外,由于Angular支持数据的双向绑定,因此它非常“胜任”建立那些实时的应用程序。那么,什么是双向绑定呢?
在模型中,所有对于数据的修改,都能反映到其相关的视图中;同时用户对于视图的所有修改,也能体现在模型里。换句话说,只要应用程序中的数据发生变化,其UI就会跟着改变。
当然,双向绑定也会使得Angular的应用程序反应较慢。因为对于每一种绑定,Angular都会创建一个观察器,以跟踪DOM里的各种变化。一旦视图被修改,Angular就会将新旧数值进行比较。因此,如果应用程序存在太多的观察器的话,其性能势必会大打折扣。
由于该框架能受益于庞大的支持社区,因此,大多数有关单页面应用所碰到的问题,都能在其社区里得到处理和解决。
根据BuiltWith(译者注:它提供在线网站SEO查询工具)提供的统计数据,如今有281652个网站正在使用Angular框架。
2. Django
2005年发布的Django是一款用 Python 编写的框架。许多开发人员都喜欢Python的语法,因为它干净,且没有杂乱的语言符号。
按照TIOBE编程社区的统计,Python是排名第四的编程语言;而在GitHub上,它更是高居第二名。
凭借着这样的语言特性,Django的学习曲线较为“平缓”,且广受开发者们的欢迎。Django同样遵循“模型 - 视图 - 模板(MVT)”的架构。一般情况下,各种复杂的、以及由数据所驱动的网站,都会采用这种框架来进行构建。例如:Instagram、Disqus(译者注:一家提供评论托管服务的第三方社会化系统)、以及NASA等知名公司的网站都源自Django架构。
秉承着“不要重复造轮子”的基本原则,Django能够方便组件的重用,因此它常被用来进行快速的网站开发。
当需要管理用户帐户和密码时,该框架能够提供卓越的安全性措施。它在Web应用程序开发的过程中,具有一定的“防水”性,能够抵御诸如 SQL 注入、跨站点脚本、和点击劫持(clickjacking)等,针对系统漏洞的攻击。
由于Django不具备创建API的内在机制,因此Django需要通过复杂的代码,才能实现路由的相关进程。而这对于一名初学者来说,可能较为困难。
Django的另一个重要方面是它有着广阔的社区,那里聚集着超过1500名贡献者。他们为Django建立了一套资源库,并配备有大量可供开发人员参考的教程。
根据BuiltWith提供的统计数据,如今有12790个网站正在使用Django框架。
3. Laravel
Laravel是由多位网站开发人员经历了多年打磨的一款开源的 PHP 框架。
按照TIOBE编程社区的统计,PHP是排名第七的流行编程语言;而在GitHub上,它排名第五名。可见,Laravel同样具有一定的普及程度。
该框架仍然遵循“模型 - 视图 - 控制器(MVC)”的架构。许多社交网络、新闻网站、以及内容管理系统都是使用该框架进行构建的。
我们从技术上看看 Laravel 备受欢迎的原因:
它是一款能够增强PHP开发,并适用于数据库迁移、对象关系映射(Object Relational Mapping,ORM)编写、以及模板编制的直观框架。它不但能够简化身份验证与缓存进程,还支持一种创建API的内置机制,以简化路由。
相比较于Django而言,Laravel的学习曲线略为“陡峭”,用户需要花一些时间去掌握它。
Laravel使用的主要安全措施是“散列密码”。它能够确保用户密码不会以简单文本的形式显示出来,而是被隐藏成为其背后的哈希值。该框架能够对用户网站中潜在的漏洞予以加固,进而抵御跨站脚本、SQL注入、以及可疑cookies等攻击。
Laravel在资源库方面完全可与Django媲美。它拥有大约1100个可供开发人员参考的视频教程。
而在支持社区方面,目前Laravel比Django少400多名贡献者,不过Laravel的社区规模也正在迎头赶上。
根据BuiltWith提供的统计数据,如今有524474个网站正在使用Laravel框架。
4. Ruby on Rails
Ruby on Rails,或简称为Rails,是使用 Ruby 编写的服务器端框架。该框架通过支持代码的重用、以及灵活地适应各种变更,实现了快速应用开发(Rapid Application Development,RAD)。
广阔的开发社区奠定了Rails的开源特性。Rails通过采用规则约定(conventions)的方式进行配置,从而显著地提升了开发的进程。换句话说:开发人员可以使用各种规则约定,而非那些专门的配置文件。
此外,Rails支持RESTful风格的架构,确保了应用程序能够围绕着某个逻辑结构进行构建。这对于分布式系统的鲁棒性是至关重要的。
Rails社区推崇敏捷的开发模式,即:通过各种迭代的采用和进程的灵活性,以方便项目的管理。
Rails的另一个亮点在于:由于它使用了Ruby代码,这种“自文档化(self-documenting)”的语言,因此我们没有必要额外去产生单独的文档。这势必提高了开发人员的工作效率。
对于Rails应用来说,我们唯一需要考虑的是它们的速度问题,因为它们运行速度并没有基于 Java 的应用程序那么快。不过尽管如此,许多大型机构,包括:Airbnb、Yellow Pages、Groupon等,依然选用了Rails。
根据BuiltWith提供的统计数据,如今有826824个网站正在使用Ruby on Rails。
5. Symfony
Symfony是一个具有丰富功能的PHP框架。它在开发者社区广受欢迎的原因来自其各种包(bundles)与组件(components)。
我们先来看看它的包。顾名思义,通过一组文件集合(包括:PHP文件、样式表、JavaScript文件),它实现了诸如:博客页面、购物车等功能。由于开发人员可以对不同的包进行重新配置、或重新运用到不同应用之中,因此它大幅降低了研发的整体成本。
另一方面,组件可以根据一些共同特征来简化各种日常的任务,从而使得开发人员能够更加专注于那些特定的业务功能。因此,开发人员既可以单独地使用组件,也能够在不影响其结构的前提下予以定制。同时,他们还能够在其他PHP框架(如上面提到的Laravel)中使用到这些组件。
Symfony的另一个亮点是它的文档化。那些符合PHP框架的文档不但非常清晰、结构严谨,而且配有各种示例。也就是说,这些文档能够在阐明每一种组件的同时,为开发过程提供详尽的注释。同时,这些文档也能够经常被保持更新。
同样,Symfony有着较为成功的大型社区支持。它在GitHub上拥有1400名贡献者,这个数字比其他的PHP框架都高出许多。
然而,相对于其他的PHP框架而言,Symfony的模块化比较慢。因此,对于一些较重的、且实时的应用程序,您可能需要采用其他的框架。
根据BuiltWith提供的统计数据,如今有9565个网站正在使用Symfony。
6.Yii
Yii仍然是一款基于“模型 - 视图 - 控制器”的框架,而且非常适合于快速应用开发(RAD)。
该框架利用代码的scaffolding(即:预先定义好代码的模板),使得代码的编写效率更高。
由于Yii并不遵循像Symfony那样“基于配置的规则约定(convention over configuration)”的原则,因此它比Symfony更为宽松。这无疑给有经验的 程序员 带来了更大的自由度。相反,初学者则会由于缺少必要的先导,而降低了编程效率。
此外,虽然Yii的组件比Symfony少,但是,Yii可以使用到Symfony的大多数组件。
在性能方面,Yii每秒能够处理410个请求的效率,显然超过了Symfony的每秒131个请求。可见,那些在同一时间拥有成千上万个用户在线访问的社交网站,更适合用Yii来搭建。
同样,Yii在GitHub上有超过700名贡献者,可见其支持社区也算比较庞大的。
根据BuiltWith提供的统计数据,如今有70022个网站正在使用Yii框架。
7. MeteorJS
Meteor是一款全栈式的,适合于构建单页面应用的JavaScript框架。该开源框架在本质上是同构的,也就是说,JavaScript可以同时运行在服务器端和客户端。
由于开发人员可以只使用JavaScript来同时管理前端、后端、以及数据库,因此它既简化了流程,又加快了网站的开发进程。
另外,开发人员可以将它与Node.js协同工作,为各种平台创建不同的实时应用。
通过Meteor原生的模块化,开发人员能够混合搭配使用各种组件,以自由地构建他们的项目。虽然该框架有着一定的规则约定,但是开发者们也有着一定的空间,他们可以根据自己的个人偏好进行网站的搭建。
Meteor的社区支持资源非常丰富。有一个类似Reddit(是一个社交新闻站点)的网站--Crater,它会持续跟踪世界上所有关于Meteor的最新动态。Evented Mind则是另外一个包含了Meteor各种培训视频的网站。
根据BuiltWith提供的统计数据,如今有12413个网站正在使用MeteorJS。
原文标题:7 Popular Website Development Frameworks of 2018,作者:Dipanshu Upadhyay
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】
【责任编辑:庞桂玉 TEL:(010)68476606】
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 使用IntelliJ IDEA开发SpringMVC网站(二)框架配置
- 爬虫+网站开发实例:电影票比价网
- Firefox 支持 Web 组件技术,简化复杂网站开发
- 使用IntelliJ IDEA开发SpringMVC网站(一)开发环境
- Tshare校园分享平台(网站开发一之环境搭建)
- 网站图标开发指南
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。