真人线上国际
service phone

0566-88666668

<
>
联系我们

0566-88666666

中国杭州

技术案例中心 您的位置: 主页 > 技术案例中心 >

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

发布人: 真人线上国际 来源: 真人线上国际 发布时间: 2020-08-01 18:35

  如今,面对各种各样的网站开发框架,您难免会产生“选择恐惧症”。本文将从客户和开发人员的角度出发,帮助您为 Web 应用的构建做出明智的框架选择。 让我们首先来对如下问题进行考量: 您需要选择那些能够支持快速应用开发的框架吗? 您选择架构的真正目的是什么? 它是否能够支持您的特定项目、及所需的各种特性 ....

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

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

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

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

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

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

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

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

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

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

  2005 年发布的 Django 是一款用 Python 编写的框架。许多开发人员都喜欢 Python 的语法,因为它干净,且没有杂乱的语言符号。

  按照 TIOBE 编程社区的统计,Python 是排名第四的编程语言; 而在 GitHub 上,它更是高居第二名。

  凭借着这样的语言特性,Django 的学习曲线较为“平缓”,且广受开发者们的欢迎。Django 同样遵循“模型 - 视图 - 模板 (MVT)”的架构。一般情况下,各种复杂的、以及由数据所驱动的网站,都会采用这种框架来进行构建。例如:Instagram、Disqus(译者注:一家提供评论托管服务的第三方社会化系统)、以及 NASA 等知名公司的网站都源自 Django 架构。

  秉承着“不要重复造轮子”的基本原则,Django 能够方便组件的重用,因此它常被用来进行快速的网站开发。

  当需要管理用户帐户和密码时,该框架能够提供卓越的安全性措施。它在 Web 应用程序开发的过程中,具有一定的“防水”性,能够抵御诸如 SQL 注入、跨站点脚本、和点击劫持 (clickjacking) 等,针对系统漏洞的攻击。

  由于 Django 不具备创建 API 的内在机制,因此 Django 需要通过复杂的代码,才能实现路由的相关进程。而这对于一名初学者来说,可能较为困难。

  Django 的另一个重要方面是它有着广阔的社区,那里聚集着超过 1500 名贡献者。他们为 Django 建立了一套资源库,并配备有大量可供开发人员参考的教程。

  Laravel 是由多位网站开发人员经历了多年打磨的一款开源的 PHP 框架。

  按照 TIOBE 编程社区的统计,PHP 是排名第七的流行编程语言; 而在 GitHub 上,它排名第五名。可见,Laravel 同样具有一定的普及程度。

  该框架仍然遵循“模型 - 视图 - 控制器 (MVC)”的架构。许多社交网络、新闻网站、以及内容管理系统都是使用该框架进行构建的。

  它是一款能够增强 PHP 开发,并适用于数据库迁移、对象关系映射 (Object Relational Mapping,ORM) 编写、以及模板编制的直观框架。它不但能够简化身份验证与缓存进程,还支持一种创建 API 的内置机制,以简化路由。

  相比较于 Django 而言,Laravel 的学习曲线略为“陡峭”,用户需要花一些时间去掌握它。

  Laravel 使用的主要安全措施是“散列密码”。它能够确保用户密码不会以简单文本的形式显示出来,而是被隐藏成为其背后的哈希值。该框架能够对用户网站中潜在的漏洞予以加固,进而抵御跨站脚本、SQL 注入、以及可疑 cookies 等攻击。

  Laravel 在资源库方面完全可与 Django 媲美。它拥有大约 1100 个可供开发人员参考的视频教程。

  而在支持社区方面,目前 Laravel 比 Django 少 400 多名贡献者,不过 Laravel 的社区规模也正在迎头赶上。

  广阔的开发社区奠定了 Rails 的开源特性。Rails 通过采用规则约定 (conventions) 的方式进行配置,从而显著地提升了开发的进程。换句话说:开发人员可以使用各种规则约定,而非那些专门的配置文件。

  此外,Rails 支持 RESTful 风格的架构,确保了应用程序能够围绕着某个逻辑结构进行构建。这对于分布式系统的鲁棒性是至关重要的。

  Rails 社区推崇敏捷的开发模式,即:通过各种迭代的采用和进程的灵活性,以方便项目的管理。

  Rails 的另一个亮点在于:由于它使用了 Ruby 代码,这种“自文档化 (self-documenting)”的语言,因此我们没有必要额外去产生单独的文档。这势必提高了开发人员的工作效率。

  对于 Rails 应用来说,我们唯一需要考虑的是它们的速度问题,因为它们运行速度并没有基于 Java 的应用程序那么快。不过尽管如此,许多大型机构,包括:Airbnb、Yellow Pages、Groupon 等,依然选用了 Rails。

  Symfony 是一个具有丰富功能的 PHP 框架。它在开发者社区广受欢迎的原因来自其各种包 (bundles) 与组件(components)。

  我们先来看看它的包。顾名思义,通过一组文件集合 (包括:PHP 文件、样式表、JavaScript 文件),它实现了诸如:博客页面、购物车等功能。由于开发人员可以对不同的包进行重新配置、或重新运用到不同应用之中,因此它大幅降低了研发的整体成本。

  另一方面,组件可以根据一些共同特征来简化各种日常的任务,从而使得开发人员能够更加专注于那些特定的业务功能。因此,开发人员既可以单独地使用组件,也能够在不影响其结构的前提下予以定制。同时,他们还能够在其他 PHP 框架 (如上面提到的 Laravel) 中使用到这些组件。

  Symfony 的另一个亮点是它的文档化。那些符合 PHP 框架的文档不但非常清晰、结构严谨,而且配有各种示例。也就是说,这些文档能够在阐明每一种组件的同时,为开发过程提供详尽的注释。同时,这些文档也能够经常被保持更新。

  同样,Symfony 有着较为成功的大型社区支持。它在 GitHub 上拥有 1400 名贡献者,这个数字比其他的 PHP 框架都高出许多。

  然而,相对于其他的 PHP 框架而言,Symfony 的模块化比较慢。因此,对于一些较重的、且实时的应用程序,您可能需要采用其他的框架。

  Yii 仍然是一款基于“模型 - 视图 - 控制器”的框架,而且非常适合于快速应用开发 (RAD)。

  该框架利用代码的 scaffolding(即:预先定义好代码的模板),使得代码的编写效率更高。

  由于 Yii 并不遵循像 Symfony 那样“基于配置的规则约定 (convention over configuration)”的原则,因此它比 Symfony 更为宽松。这无疑给有经验的程序员带来了更大的自由度。相反,初学者则会由于缺少必要的先导,而降低了编程效率。

  在性能方面,Yii 每秒能够处理 410 个请求的效率,显然超过了 Symfony 的每秒 131 个请求。可见,那些在同一时间拥有成千上万个用户在线访问的社交网站,更适合用 Yii 来搭建。

  同样,Yii 在 GitHub 上有超过 700 名贡献者,可见其支持社区也算比较庞大的。

  Meteor 是一款全栈式的,适合于构建单页面应用的 JavaScript 框架。该开源框架在本质上是同构的,也就是说,JavaScript 可以同时运行在服务器端和客户端。

  由于开发人员可以只使用 JavaScript 来同时管理前端、后端、以及数据库,因此它既简化了流程,又加快了网站的开发进程。

  另外,开发人员可以将它与 Node.js 协同工作,为各种平台创建不同的实时应用。

  通过 Meteor 原生的模块化,开发人员能够混合搭配使用各种组件,以自由地构建他们的项目。虽然该框架有着一定的规则约定,但是开发者们也有着一定的空间,他们可以根据自己的个人偏好进行网站的搭建。

  Meteor 的社区支持资源非常丰富。有一个类似 Reddit(是一个社交新闻站点) 的网站–Crater,它会持续跟踪世界上所有关于 Meteor 的最新动态。Evented Mind 则是另外一个包含了 Meteor 各种培训视频的网站。

真人线上国际
版权所有©杭州 真人线上国际 通信技术股份有限公司
真人线上国际 京ICP备17049943号 网站地图