2018年度最流行的七个网站开发框架

译文
开发 后端
您正在为自己的下一个项目寻找新的框架吗?本文将向您列举那些适合于PHP、Python、和JavaScript等语言的年度最流行框架。

【51CTO.com快译】如今,面对各种各样的网站开发框架,您难免会产生“选择恐惧症”。本文将从客户和开发人员的角度出发,帮助您为Web应用的构建做出明智的框架选择。

让我们首先来对如下问题进行考量:

  • 您需要选择那些能够支持快速应用开发的框架吗?
  • 您选择架构的真正目的是什么?
  • 它是否能够支持您的特定项目、及所需的各种特性?
  • 它是否拥有一个庞大的支持社区?

通过上述一系列的问题,您应该对自己的需求有了一个清晰的了解。下面,我们准备了本年度最流行的七个网站开发框架,供您进一步参考与选择。

1.Angular

Angular是一种适用于前端开发的、且开源的JavaScript框架。大多数动态网站应用都会使用该框架来构建。

基于“模型 - 视图 - 控制器”的Angular架构,有着固定的组织结构,因此它非常适用于那些具有单页面的应用程序。

该框架包含了开发者需要掌握的各种控制器、指令集和其他组件。因此,其学习曲线较为“陡峭”。

另外,由于Angular支持数据的双向绑定,因此它非常“胜任”建立那些实时的应用程序。那么,什么是双向绑定呢?

在模型中,所有对于数据的修改,都能反映到其相关的视图中;同时用户对于视图的所有修改,也能体现在模型里。换句话说,只要应用程序中的数据发生变化,其UI就会跟着改变。

当然,双向绑定也会使得Angular的应用程序反应较慢。因为对于每一种绑定,Angular都会创建一个观察器,以跟踪DOM里的各种变化。一旦视图被修改,Angular就会将新旧数值进行比较。因此,如果应用程序存在太多的观察器的话,其性能势必会大打折扣。

由于该框架能受益于庞大的支持社区,因此,大多数有关单页面应用所碰到的问题,都能在其社区里得到处理和解决。

根据BuiltWith(译者注:它提供在线网站SEO查询工具)提供的统计数据,如今有281652个网站正在使用Angular框架。

2. Django

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

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

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】

责任编辑:庞桂玉 来源: 51CTO
相关推荐

2021-10-18 13:29:52

Golang网站开发代码

2023-11-08 14:06:50

2017-11-22 12:40:02

PythonGUI框架

2017-02-17 11:16:11

JavaScriptMV*框架

2021-12-07 10:31:33

CIOIT董事会

2019-01-03 16:12:02

数据库

2022-07-13 08:53:12

开源元宇宙

2017-07-14 14:50:00

架构框架前端

2017-11-15 16:51:28

IT薪酬招聘

2017-06-27 14:02:09

前端框架Bootstrap

2009-07-01 16:54:20

JSP网站开发教程

2023-07-06 14:07:30

2011-03-22 10:03:24

web网站开发

2023-01-24 17:03:13

强化学习算法机器人人工智能

2018-01-07 01:17:06

科技5GIT

2018-05-24 15:03:09

开源框架Web框架Java

2022-10-09 16:16:17

开发代码库网站

2011-01-05 09:17:49

CSS框架

2022-07-05 08:00:00

云原生Java开发

2011-07-07 10:10:02

WEB
点赞
收藏

51CTO技术栈公众号