澳门新萄京官方网站-www.8455.com-澳门新萄京赌场网址

2014年JavaScript领域中最受应接的,库及工具

2019-12-01 作者:澳门新萄京赌场网址   |   浏览(100)

2017年 JavaScript 框架回顾 — 后端框架

2018/01/30 · JavaScript · 框架

原文出处: Laurie Voss   译文出处:葡萄城控件   

本文是2017年 JavaScript 框架回顾系列的最后的一篇文章,主要介绍 JavaScript 的后端框架情况。

澳门新萄京官方网站 1

从上图中可以看到,Express 作为用 JavaScript 编写的后端服务的主流解决方案,占据了后端框架使用率的绝大部分,其次的四个最大框架对比于 Express 来说,占用率都很小。

澳门新萄京官方网站 2

到目前为止,我们所讨论的几乎所有框架的绝对使用量都在不断增加。自2013年以来,Express 的使用率已经增长了6000%。之所以 Express 的6000%增长在第一张图中显示成下降的状态,是因为在同一时间内,总的 npm registry 增长了67,000%。也就是说,JavaScript 社区正在以编程语言史上前所未有的速度增长。

 

本文是2017年 JavaScript 框架回顾系列的最后的一篇文章,主要介绍 JavaScript 的后端框架情况。

之前我们报道了 npm 2018 年的第一个 JavaScript 现状报告的第一部分和第二部分,分别分析了前端框架的现状和 React 生态系统。

因个人精力有限,暂停简书的维护,欢迎大家关注我的知乎https://www.zhihu.com/people/wei-wei-24-86-36/activities,会持续分享前端、Web开发相关文章

下列项目按照流行程度排序……

npm 的前端使用正在爆炸式增长

目前,大约83%的 npm 开发人员正在编写运行在前端的 JavaScript,而只有41%的人正在为后端编写代码(前后端开发者有重叠的部分)。前后端开发人员的比例为约为2:1,这也表明 npm 社区的未来在于前端的开发和工具制造。

接下来我们查看其它的后端框架。

 

澳门新萄京官方网站 3

今天,我们将报道第三部分,对后端框架的现状进行解读。

微信原文:2016年JavaScript领域中最受欢迎的“明星”们

jQuery

其他后端框架

下面是除 Express 之外的四个最大的后端框架,分别为:

  • Koa
  • Hapi
  • Sails
  • Next

 

从上图中可以看到,Express 作为用 JavaScript 编写的后端服务的主流解决方案,占据了后端框架使用率的绝大部分,其次的四个最大框架对比于 Express 来说,占用率都很小。

主要后端框架

JavaScript社区的发展正如盛壮之时的骐骥,—日而驰千里,趋势如长江后浪推前浪。

jQuery
类型 库
网站 jquery.com
代码库 github.com/jquery/jquery
当前版本 3.2.1
开发者 jQuery 团队
发布日期 2006年8月
体积 压缩后 30kb
用于 通用于各种项目
使用率 72.4%的网站
jQuery一直是有史以来使用最多的 JavaScript 库,它还被包含在 WordPress、ASP.NET 和几个其它框架中一同分发。jQuery 引入了 CSS 选择器进行 DOM 节点的获取,并可以通过链式调用挂载事件处理器、执行动画以及 Ajax 操作,这些都对客户端开发产生了革命性的影响。

koa

澳门新萄京官方网站 4

蓝色代表的是 koa 的相对使用率情况。Koa 是 Express 的开发人员使用一套更紧密的设计原则编写的,旨在创建一个更小、更富表现力同时也更健壮的 Web 框架。虽然 Koa 具有不低的使用量,但其增长速度还不是很快。

 

澳门新萄京官方网站 5

澳门新萄京官方网站 6

2016年已经过去,2017的工作已经开启,你是否会担心错过一些重要的东西?无须担心,JS.ORG不久前分享了一篇博文:https://risingstars2016.js.org,为大家回顾了去年主要的趋势。

近几年喜爱 jQuery 的人已经有所减少,但它对于一些并不需要太多 JavaScript 功能的项目来说仍是一个切实可行的选项。

Hapi

澳门新萄京官方网站 7

Hapi 是一个用于构建应用和服务的丰富框架,Hapi 使得开发者更专注于编写可复用的应用逻辑,而不必把时间花费在基础设施的搭建上。2014年底,Hapi 有一个短暂的繁荣时期,然而自此之后,Hapi 的使用率就一直处于下滑状态。

 

到目前为止,我们所讨论的几乎所有框架的绝对使用量都在不断增加。自2013年以来,Express 的使用率已经增长了6000%。之所以 Express 的6000%增长在第一张图中显示成下降的状态,是因为在同一时间内,总的 npm registry 增长了67,000%。也就是说,JavaScript 社区正在以编程语言史上前所未有的速度增长。

后端框架中,变化比较明显的是 Express,这是用 JavaScript 编写的后端服务的主流解决方案。其他四个框架相比之下变化趋势并不明显,图标中几乎无法体现。Express 从 2013 年初以来已经增长了 6000%。之呈现下降趋势,是因为在同一时间内,注册数量增长了 67000%。

前端之巅翻译并整理了这篇博文,以飨读者。

优点:

Sails

澳门新萄京官方网站 8

Sails 是 JavaScript 的 Ruby on Rails 克隆。尽管最初在2012年年底推出时,Sails 非常受欢迎,但它却也遵循着“半衰期”的衰退模式,这也表明 Sails 不再被新项目采用。

 

 

换句话说,JavaScript 在编程语言中正以前所未有的增长。

JS.ORG通过比较过去12个月里,在Github上增加的星标数,告诉你2016年的趋势。

分发包的体积较小
学习难度不高,网上可找到大量的帮助信息
语法简洁
容易扩展
缺点:

Next.js

澳门新萄京官方网站 9

Next.js 是一个基于 React 的通用 JavaScript 框架,同时也是一个较新的框架。

Zeit 的开发团队在 React 的基础上创建了 Next.js。Next.js 提供了一种很方便的方式来创建新的 Web 应用。当前 Next.js 的使用率尽管还很低,但是却一直保持着上升的趋势,值得关注。

 

npm 的前端使用正在爆炸式增长

目前,大约83%的 npm 开发人员正在编写运行在前端的 JavaScript,而只有41%的人正在为后端编写代码(前后端开发者有重叠的部分)。前后端开发人员的比例为约为2:1,这也表明 npm 社区的未来在于前端的开发和工具制造。

接下来我们查看其它的后端框架。

 

澳门新萄京官方网站 10

在2015年,React是社区之王,Redux在与Flux的大战中获胜。那么,谁是2016年的JavaScript的新星?

与使用原生 API 相比有性能损失
现在浏览器的兼容性问题已经得到了改善,所以它在这方面的价值显得不那么重要了
使用率不再增长了
业界已经出现了一些反对滥用 jQuery 的意见
React

Npm 中的前后端对比

澳门新萄京官方网站 11

前面已经提到,当前前端开发者的数量远超后端开发者的数量,但这种情况是否反映在 npm 的前后端安装包数量上呢?

尽管前后端的安装包也存在重叠的情况,但是整体数量还是后端安装包数量高于前端。

 

其他后端框架

下面是除 Express 之外的四个最大的后端框架,分别为:

  • Koa
  • Hapi
  • Sails
  • Next

 

npm 的前端框架出现爆炸式增长

以下图表比较了Github在过去12个月中增加的星标数量。JS.ORG分析了bestof.js.org的项目,这是一个与网络平台相关的最佳项目的精选列表。

React
类型 库
网站 facebook.github.io/react/
代码库 github.com/facebook/react
当前版本 15.5.4
开发者 Facebook 及其他贡献者
发布日期 2013年3月
体积 压缩后 21kb
用于 单页应用
使用率 低
这可能是过去一年中被讨论最多的库了。React 宣称自己是一个用于创建用户界面的 JavaScript 库。它主要关注模型-视图-控制器(MVC)开发中的“视图”部分,使用 React 可以更为容易地创建具有状态的用户界面组件。它首创性地实现了虚拟 DOM,这是一种内存中的数据结构可以通过比较结构的变化来更有效率地更新页面。

npm 中的前端使用情况

澳门新萄京官方网站 12

2013年以前,npm 中的前端框架使用量非常大,Backbone 的流行也是促成这种情况的原因之一。但是,随着 Express 和其它服务器端框架的持续增长,Backbone 变得不那么流行了。

npm registry 的前端使用率在经过两年的下滑之后,2015年开始再次开始增长。

 

koa

澳门新萄京官方网站 13

蓝色代表的是 koa 的相对使用率情况。Koa 是 Express 的开发人员使用一套更紧密的设计原则编写的,旨在创建一个更小、更富表现力同时也更健壮的 Web 框架。虽然 Koa 具有不低的使用量,但其增长速度还不是很快。

 

npm 社区中,JavaScript 的前端开发人员占比 83%,后端开发人员占比 41%,二者比例 2:1

一. 2016年最受欢迎的项目

React 的使用率统计数据较低可能是因为它主要被用在应用程序而不是网站中。大约有38%的开发者宣称他们正在使用 React.

跟踪 npm 前端的具体使用情况

为了弄清楚 npm 前端的具体使用情况,我们将关注于提供前端代码的一些库,主要包括:

  • Bable
  • Webpack
  • Browserify
  • Bower
  • RequireJS
  • SystemJS

 

Hapi

澳门新萄京官方网站 14

Hapi 是一个用于构建应用和服务的丰富框架,Hapi 使得开发者更专注于编写可复用的应用逻辑,而不必把时间花费在基础设施的搭建上。2014年底,Hapi 有一个短暂的繁荣时期,然而自此之后,Hapi 的使用率就一直处于下滑状态。

 

其他后端框架

概述

澳门新萄京官方网站 15

Snip20170204_1.png

通过一年中最热门的10个项目,由此可以很好地了解2016年的Web开发环境,因为您会发现:

  • 3个UI框架:Vue.JS、React、Angular 2

  • 新的Node.js包管理器:Yarn

  • 构建桌面应用程序的领先解决方案:Electron

  • 快速启动新的React项目的解决方案:Craste React App

  • 移动框架:React Native

  • 最著名的CSS工具包:Bootstrap

  • 基于函数概念的状态管理库:Redux

  • 强大灵活的图表库:D3

以上展现了2016年中,JavaScript表现出了无处不在,功能多样的特性。

优点:

Bable

澳门新萄京官方网站 16

Babel 是一个转译器,用于将现代的 JavaScript 版本转换为与 Node.js 中的服务器端 JavaScript 以及浏览器兼容的 JavaScript 旧版本。Babel 非常受欢迎,被用于前端和后端应用程序中。

 

Sails

澳门新萄京官方网站 17

Sails 是 JavaScript 的 Ruby on Rails 克隆。尽管最初在2012年年底推出时,Sails 非常受欢迎,但它却也遵循着“半衰期”的衰退模式,这也表明 Sails 不再被新项目采用。

 

澳门新萄京官方网站 18

2016年的王者

Vue.JS项目在去年的GitHub上获得了超过25,000颗星标,将包括React和Angular的其他框架甩在身后,一骑绝尘。

10月发布的Veu.JS的版本2,带来了虚拟DOM的性能。

Vue.JS用于大公司(包括阿里巴巴,中国最大的电子商务公司)的生产,所以你可以认为它是一个安全的选择。

它已经有一个相当成熟的生态系统,包括路由(vue-router)和状态管理库(Vuex)。

看来Vue.JS采用了最好的React(组件方法)和AngularJS(模板是HTML代码增强的框架特性)。

体积小,效率高,快速,灵活
简单的组件模型
良好的文档和线上资源
可以在服务器端渲染
当前非常受欢迎,正处于快速上升阶段
缺点:

Webpack

澳门新萄京官方网站 19

Webpack 是专门为浏览器提供 JavaScript 代码的工具。React 一直使用 Webpack 为浏览器服务做准备,很长一段时间,React 和 Webpack 都保持着相同的增长趋势。

但是从2016年年中开始,Webpack 的使用率开始超过 React。这也表明,Web 开发人员已经开始更广泛的采用 Webpack,而不仅仅是 React 应用程序。

 

Next.js

澳门新萄京官方网站 20

Next.js 是一个基于 React 的通用 JavaScript 框架,同时也是一个较新的框架。

Zeit 的开发团队在 React 的基础上创建了 Next.js。Next.js 提供了一种很方便的方式来创建新的 Web 应用。当前 Next.js 的使用率尽管还很低,但是却一直保持着上升的趋势,值得关注。

 

其他除了 Express 的其他四个框架:

二. 前端框架

澳门新萄京官方网站 21

Snip20170204_2.png

“前端框架”这一分类可能是2016年JavaScript最累的一个牌行榜,几乎每个月都会出现一个竞争者,但是,这推动了创新的步伐。

确切地说,在这个类别中混合了两种类型的项目:

  • 完整的框架包含了所有功能,能够创建一个现代的Web应用程序(路由、数据提取、状态管理)。AngularJS、Angular 2、Ember或Aurelia都属于这一类。

  • 更轻量级的解决方案专注于UI层,如React、Vue.JS、Inferno,等等。

我们已经提到了总体排名第一的Vue.JS,让我们看看其他竞争者。

需要学习新的概念和语法
必须依赖于构建工具才能使用
可能需要其它的库或框架来提供模型和控制器部分
可能与其它会改变 DOM 的代码和库不能兼容
Lodash 和 Underscore

Browserify

澳门新萄京官方网站 22

在 WebPack 成为流行的 JavaScript 代码工具之前,Browserify 一直是浏览器端转化服务器端 JavaScript 的重要工具。Browserify 也曾在2015年中期保持很高的受欢迎程度,但是从2016年开始,随着 Webpack 的逐渐流行,Browserify 的受欢迎度出现了急剧下滑的现象。

这也许和两个工具的设计目的有关。Browserify 为浏览器带来了 Node.js API surface(包括用于许多后端的API),Webpack 则是一个更通用的模块系统和编译工具,用于加载图片、CSS和其它前端资源。因此,对于非 Node.js 开发者来说,Webpack 更为有用。随着 npm Registry 前端使用的急剧增加,Webpack 已经成为一个非常有吸引力的选择。

 

Npm 中的前后端对比

澳门新萄京官方网站 23

前面已经提到,当前前端开发者的数量远超后端开发者的数量,但这种情况是否反映在 npm 的前后端安装包数量上呢?

尽管前后端的安装包也存在重叠的情况,但是整体数量还是后端安装包数量高于前端。

 

Koa

React及其竞争者

React总体排名第二,前端开发者没有谁可以忽略React及其丰富的生态系统。

React如此受欢迎,它激发了很多其他库,旨在采取最好的React,没有臃肿,提高在浏览器的性能和构建时间。

Inferno是这个类别中最受欢迎的项目,它声称是React最快的替代品。

在我们的排名中,紧跟Inferno之后,Preact也是React的一个不错的替代品。它的生态系统是相当成熟的,例如有一个具有离线功能的Bolierplates、路由、Compat模块,以便您可以使用Preact项目中的任何现有React库。

Lodash
类型 库
网站 lodash.com/
代码库 github.com/lodash/lodash/
当前版本 4.17.4
开发者 John-David Dalton
发布日期 2012年4月
体积 压缩后 4kb - 24kb
用于 通用于各种项目
使用率 低
Underscore
类型 库
网站 underscorejs.org/
代码库 github.com/jashkenas/underscore
当前版本 1.8.3
开发者 Jeremy Ashkenas
发布日期 2009年10月
体积 压缩后 6kb
用于 通用于各种项目
使用率 低
之所以把 Lodash 和 Underscore 放在一起讨论,是因为它们同样都提供了数以百计的 JavaScript 实用函数作来弥补原生的字符串、数、数组以及其他 JavaScript 基本对象在方法上的的不足。它们在功能上有一些重叠,因此你不会在同一个项目中同时使用这两个库。

Bower

澳门新萄京官方网站 24

澳门新萄京官方网站,浏览器端模块化 JavaScript 的另一个解决方案是 Bower,Bower 将模块引入了浏览器。尽管 Bower 客户端是由 npm Registry 托管和安装的,但是 Bower 却是一个完全独立的非 npm 模块。

虽然 Bower 的开发人员认为其客户端具有许多优秀的特性,但是他们还是赞同 CommonJS(大多数 npm 包所使用的 JavaScript 模块的格式)是一种更为灵活和流行的解决方案。Bower 的受欢迎程度自2014年起开始出现了持续的下滑。

 

npm 中的前端使用情况

澳门新萄京官方网站 25 

2013年以前,npm 中的前端框架使用量非常大,Backbone 的流行也是促成这种情况的原因之一。但是,随着 Express 和其它服务器端框架的持续增长,Backbone 变得不那么流行了。

npm registry 的前端使用率在经过两年的下滑之后,2015年开始再次开始增长。

 

Hapi

Angular 1和Angular 2

Angular项目已经拆分为2个存储库,因为Angular 2是Angular 1的完全重写,即使一些概念保持不变。

Angular 2是用TypeScript编写的,并且利用ES6提供一个现代和彻底的框架。

AngularJS项目是1.x的分支,它在许多项目中仍然使用,并将继续流行一段时间。

值得一提的是,Ember虽然拥有庞大的生态系统,但它的社区并不在前十名。

因此看起来,与其选择“开箱即用”的所有功能的完整框架,2016年开发商更倾向轻量级的方案,并喜欢组成自己的方案——“点菜”。

在2016年调味的更轻的方法,并更喜欢组成自己的解决方案“点菜”。

它们在客户端上的使用率并不是太高,但它们也都可以用在 Node.js 应用中,从而工作在服务器端。

RequireJS 和 SystemJS

澳门新萄京官方网站 26

Bower 的模块并不是 CommonJS 的唯一选择,RequireJS 是另一种具有模块格式的可选方案。RequireJS 在2013年初很受欢迎,但自2014年之后,开始与 Bower 一同出现下滑。2015年发布的 SystemJS 增长很缓慢。

 

跟踪 npm 前端的具体使用情况

为了弄清楚 npm 前端的具体使用情况,我们将关注于提供前端代码的一些库,主要包括:

  • Bable
  • Webpack
  • Browserify
  • Bower
  • RequireJS
  • SystemJS

 

Sails

三. Node.js框架

澳门新萄京官方网站 27

Snip20170204_3.png

2016年,使用以下解决方案创建和部署node.js应用程序从未如此简单:

  • Now

  • Webtask.io

  • Stdlib

像Gomix这样的项目甚至降低了Node.js世界的门槛,使得任何人都可以在浏览器中轻松点击几下来编写共享 Node.js代码。

如果你必须构建一个Web应用程序,你会选择哪个框架?

优点:

Webpack 和 Express

澳门新萄京官方网站 28

目前,我们判断 npm 前端使用量的最可靠依据就是 Webpack。相比于 Express 的相对使用率,可以看到,Webpack 在三年时间内,相对使用率迅速攀升到了 Express 的一半。

我们大胆预测 Webpack 将继续增长,甚至可能会超过 Express,这也与我们所见到的 Webpack 的新用户比例一致。几年后,npm 将是一个主要的前端工具。

 

Bable

澳门新萄京官方网站 29

Babel 是一个转译器,用于将现代的 JavaScript 版本转换为与 Node.js 中的服务器端 JavaScript 以及浏览器兼容的 JavaScript 旧版本。Babel 非常受欢迎,被用于前端和后端应用程序中。

 

Next

Express

当你使用node.js构建Web应用程序时,Express通常被视为事实上的Web服务器。它的哲学(一个可以使用中间件包扩展的简约核心)是大多数node.js开发人员熟悉的。

小而简单
文档良好,易于学习
与大多数其它库与框架兼容
没有改变或扩展内建对象
在客户端和服务器端均可使用
缺点:

总结

澳门新萄京官方网站 30

npm 生态系统中前端和后端的使用量增长,对于 JavaScript 的整体而言都是一个好消息。JavaScript 语言所具有的灵活性和易用性,是一种很大的优势。

也许 JavaScript 的广泛采用,正是由于 JavaScript 的内置特性很少,使得 JavaScript 语言在被使用时,有了很多的其它选择。

现在 JavaScript 使用量正在急剧增长,npm 也在与之同步增长。

 

1 赞 1 收藏 评论

澳门新萄京官方网站 31

Webpack

澳门新萄京官方网站 32 

Webpack 是专门为浏览器提供 JavaScript 代码的工具。React 一直使用 Webpack 为浏览器服务做准备,很长一段时间,React 和 Webpack 都保持着相同的增长趋势。

但是从2016年年中开始,Webpack 的使用率开始超过 React。这也表明,Web 开发人员已经开始更广泛的采用 Webpack,而不仅仅是 React 应用程序。

 

Hapi

Koa

Koa的哲学接近Express,但它是使用ES6生成器,以避免有时被称为回调地狱的问题。

库中包含的一些功能已经在在 ES2015 及后续的 JavaScript 版本中引入,因此有一定程度的冗余
AngularJS 1.x

Browserify

澳门新萄京官方网站 33 

在 WebPack 成为流行的 JavaScript 代码工具之前,Browserify 一直是浏览器端转化服务器端 JavaScript 的重要工具。Browserify 也曾在2015年中期保持很高的受欢迎程度,但是从2016年开始,随着 Webpack 的逐渐流行,Browserify 的受欢迎度出现了急剧下滑的现象。

这也许和两个工具的设计目的有关。Browserify 为浏览器带来了 Node.js API surface(包括用于许多后端的API),Webpack 则是一个更通用的模块系统和编译工具,用于加载图片、CSS和其它前端资源。因此,对于非 Node.js 开发者来说,Webpack 更为有用。随着 npm Registry 前端使用的急剧增加,Webpack 已经成为一个非常有吸引力的选择。

 

Hapi 在 2014 年末有一个短暂的鼎盛时期。然而,Hapi 自此以后一直处于下滑状态。

Feathers

Feathers是一个非常灵活的解决方案,创建一个“面向服务”的架构,它是一个很好的适合创建node.js微服务。

AngularJS
类型 框架
网站 angularjs.org
代码库 github.com/angular/angular.js
当前版本 1.6.4
开发者 Google
发布日期 2010年10月
体积 144kb
用于 单页应用
使用率 低
Angular 是这份列表中出现的第一个框架(或者说MVC 应用框架)。其最流行的的版本是1.x,它扩展了 HTML 使之具备双向绑定能力,从而将 DOM 操作与应用程序逻辑解耦。

Bower

澳门新萄京官方网站 34 

浏览器端模块化 JavaScript 的另一个解决方案是 Bower,Bower 将模块引入了浏览器。尽管 Bower 客户端是由 npm Registry 托管和安装的,但是 Bower 却是一个完全独立的非 npm 模块。

虽然 Bower 的开发人员认为其客户端具有许多优秀的特性,但是他们还是赞同 CommonJS(大多数 npm 包所使用的 JavaScript 模块的格式)是一种更为灵活和流行的解决方案。Bower 的受欢迎程度自2014年起开始出现了持续的下滑。

 

澳门新萄京官方网站 35

Nodal

Nodal框架以目标无状态和分布式服务连接到PostgreSQL数据库。

Angular 1.x仍然在持续开发中,但它也同时发布了 Angular 2(现在已经是 Angular 4!)。被搞糊涂了?请往下看……

RequireJS 和 SystemJS

澳门新萄京官方网站 36 

Bower 的模块并不是 CommonJS 的唯一选择,RequireJS 是另一种具有模块格式的可选方案。RequireJS 在2013年初很受欢迎,但自2014年之后,开始与 Bower 一同出现下滑。2015年发布的 SystemJS 增长很缓慢。

 

Sails

Keystone

Keystone是我所知得到一个管理客户端并运行得最好的解决方案之一,以便管理来自MongoDB数据库的内容。管理界面自动从模型生成,具有所有CRUD操作和精细的过滤器。

优点:

Webpack 和 Express

澳门新萄京官方网站 37

目前,我们判断 npm 前端使用量的最可靠依据就是 Webpack。相比于 Express 的相对使用率,可以看到,Webpack 在三年时间内,相对使用率迅速攀升到了 Express 的一半。

我们大胆预测 Webpack 将继续增长,甚至可能会超过 Express,这也与我们所见到的 Webpack 的新用户比例一致。几年后,npm 将是一个主要的前端工具。

 

顾名思义,Sails 就是 JavaScript 的 Ruby on Rails 克隆。 虽然在 2012 年年底推出的时候非常流行,但是它遵循着熟悉的“半衰期”衰退模式,这意味着后来没有被新项目采用。

Sails

Sails是一个完整的MVC框架,受Ruby on Rails的启发(因此名为Sails!)。它已经存在了很长时间。它可以与任何类型的数据库(SQL或无SQL)良好工作。

得到了几个大公司的采用
它为构建现代 web 应用提供了一套单一而完整的解决方案
它是“标准”的 MEAN 技术栈(MongoDB、Express JS、AngularJS 和 NodeJS)中的一个组成部分
缺点:

总结

澳门新萄京官方网站 38

npm 生态系统中前端和后端的使用量增长,对于 JavaScript 的整体而言都是一个好消息。JavaScript 语言所具有的灵活性和易用性,是一种很大的优势。

也许 JavaScript 的广泛采用,正是由于 JavaScript 的内置​​特性很少,使得 JavaScript 语言在被使用时,有了很多的其它选择。

现在 JavaScript 使用量正在急剧增长,npm 也在与之同步增长。

 

澳门新萄京官方网站 39

Loopback

Loopback是另一个成熟的框架,内置许多函数,包括使用令牌和到任何类型的数据库的连接器的认证。

它的杀手级功能是API浏览器功能,允许开发人员以直观的方式检查所有API端点,并能检查任何用户的令牌。如果你必须构建一个API,这绝对是一个不错的选择。

与其它竞争者相比学习曲线更为陡峭
庞大的代码体积
无法升级到 Angular 2.x
尽管由 Google 开发,但 Google 并不在自己的产品中使用它?
Angular 2.x(现在是4.x)

JavaScript 开发工具推荐

SpreadJS 纯前端表格控件是基于 HTML5 的 JavaScript 电子表格和网格功能控件,提供了完备的公式引擎、排序、过滤、输入控件、数据可视化、Excel 导入/导出等功能,适用于 .NET、Java 和移动端等各平台在线编辑类 Excel 功能的表格程序开发。

原文链接:

转载请注明出自:葡萄城控件

 

Next.js

四. React Boilerplates

澳门新萄京官方网站 40

Snip20170204_4.png

React是一个伟大的UI库,但使用React和现代Web开发工作流工具需要大量的配置。那么如何开始创建一个应用程序呢?

这是React的“Boilerplates”和其他“Starter Kits”提供的答案:

Angular
类型 框架
网站 angular.io
代码库 github.com/angular/angular.js
当前版本 4.1
开发者 Google
发布日期 2016年9月
体积 压缩后 450kb
用于 单页应用
使用率 低
Angular 2.0 发布于2016年9月。它名为2.0,其实是一个完全重写的版本。项目引入一个模块化的基于组件的模型,并用 TypeScript(再编译为 JavaScript)写成。2017年3月4.0版本发布(由于一些语义化版本上的问题,3.0版本被直接跳过了),这更增加了在版本上的混乱。

关于葡萄城

活字格由葡萄城公司研发、销售并提供技术服务。葡萄城公司成立于1980年,是全球领先的集开发工具、商业智能解决方案、管理系统设计工具于一身的软件和服务提供商。西安葡萄城是其在中国的分支机构,面向全球市场提供软件研发服务,并为中国企业的信息化提供国际先进的开发工具、软件和研发咨询服务。 

Next.js 是个比较新的框架,相比其他几个框架流行度偏低,不过也出现了比较稳定的增长,尤其是在它使用了 React 之后。

Create React App

Facebook通过提供一个称为Create React App的轻量级方法来解决这个需求,这是一个非常方便的启动一个新的React项目。

Dan Abramov(Redux的创造者,现在为Facebook工作)做了一个伟大的工作,在简单性和功能找到了正确的平衡点。例如,没有花哨的样式解决方案(只是简单的CSS),没有服务器端渲染,但是所有的一切,都很好地打包了,开发人员的体验非常棒。

与其竞争者的主要区别是,如果使用Create React App,它将成为项目的依赖项,所有的魔法是隐藏的,你看到的只是你的应用程序代码。您可以随时升级依赖关系,它并非只是一个起点。

Angurlar 2 及其后续版本与其1.x版本是完全不同的两个项目,它们也互不兼容 —— 如果当时 Google 能给 Angular 2 另取一个不同的名字可能就不会这么令人费解了吧!

澳门新萄京官方网站 41

React boilerplate

命名为React boilerplate具有您需要的一切,包括Redux和一些漂亮的离线功能,利用web workers技术。

它让开发人员创建所谓的渐进式Web应用程序(Progressive Web Applications,PWA):离线运行的Web应用程序,使用一种名为Service Worker的技术,请阅读NicolásBevacqua的文章。

优点:

前端框架 vs 后端框架

Next.js

Next.js由Zeit创建,具有可用于创建通用应用程序的服务器端呈现功能(或同构应用程序,如我们在2015年所说),也就是说客户端和服务器端运行的应用程序使用相同代码。

它也是一个用于构建现代 web 应用程序的单一而完整的解决方案
也仍是所谓 MEAN 技术栈的组成部分,尽管 Angular 2 的教程要比1.x版本少得多
对于那些熟悉 C# 和 Java 这种静态类型语言的人来说,用 TypeScript 作为开发语言也意味着是一种优点
缺点:

澳门新萄京官方网站 42

五. Mobile

澳门新萄京官方网站 43

Snip20170204_5.png

JavaScript无处不在,你可以使用技术Web开发人员已知的任何技术(HTML、JavaScript、CSS)构建移动应用程序。

与其它竞争者相比学习曲线更为陡峭
庞大的代码体积
无法从 Angular 1.x 升级
与其 1.x 版本相比,人们对 Angular 2.x 的接受和使用程度要低得多
同样,尽管作为一个 Google 项目,但 Google 自己并没有使用它?
Vue.js

React Native

使用React Native,你可以从相同的代码库使用React开发人员熟悉的概念构建iOS和Android真正的原生移动应用程序。要了解有关构建iOS和Android应用程序的更多信息,请阅读这本教程。

其他基于Cordova的解决方案,依靠WebView来渲染屏幕,并且不如原生解决方案那么高效。 “一次编写,随处运行”,这是开发人员的梦想成真!

Vue.js
类型 框架
网站 vuejs.org
代码库 github.com/vuejs/vue
当前版本 2.0
开发者 Evan You
发布日期 2014年2月
体积 压缩后 19kb
用于 单页应用
使用率 低
Vue.js 是一个用于构建用户界面的轻量级渐进式的框架。其核心部分提供类似 React 的虚拟 DOM 来驱动视图层,同时它可以与其它库进行整合,也完全可以独立搭建一个完整的单页应用程序。Evan You 创造了 Vue.js,他原本是 AngularJS 的使用者,但他从 AngularJS 中抽取了他喜欢的部分进而创建了 Vue.js。

Ionic

Ionic是“混合”应用程序概念的先驱。在后台中,它基于Cordova访问移动设备功能。这是一个非常成熟的大型生态系统。

Vue.js 使用 HTML 模板语法来绑定 DOM 和数据。其模型则是普通的 JavaScript 对象,当数据发生变化时,模型会去更新视图。它也提供了一些辅助性的工具,提供诸如脚手架、路由、状态管理及动画等功能。

NativeScript

NativeScript旨在实现与React Native相同的目标(使用Web技术构建真正的移动应用程序)。它有两种种风格:NativeScript Core和NativeScript Angular 2。

优点:

前瞻

在2017年密切关注的一个项目:Weex,一个构建在Vue.JS之上的移动跨平台UI框架。

人们接受它很快,并且受欢迎程度一直在增加
容易上手,开发者满意度高
依赖少,性能好
缺点:

六. Compilers

澳门新萄京官方网站 44

Snip20170204_6.png

我们在这里谈论生成任何语言(或JavaScript的任何变体)的JavaScript的编译器(或“transpilers”)。它们将代码转换为浏览器(或Node.js)可以执行的“标准JavaScript”代码。

例如,编译器允许开发人员使用最新版本的JavaScript(ES6)编写代码,而无须担心浏览器的支持。

还是一个比较新的项目 —— 这可能意味着较大的风险
依赖于作者一个人维护这个项目
与其它竞争者相比,资源较少
Backbone.js

TypeScript

最时髦的转换器是TypeScript,它为Web开发人员提供了Java和C#开发人员使用的静态类型。事实上,Angular 2使用TypeScript增加了更多的牵引力。在JavaScript中使用类型有优缺点,阅读这些文章,使你自己的观点:

  • 你可能不需要TypeScript:https://medium.com/javascript-scene/you-might-not-need-typescript-or-static-types-aa7cb670a77b#.1pn05vlis

  • TypeScript:缺失的介绍:https://toddmotto.com/typescript-the-missing-introduction

Backbone.js
类型 框架
网站 backbonejs.org
代码库 github.com/jashkenas/backbone/
当前版本 1.3.3
开发者 Jeremy Ashkenas
发布日期 2010年10月
体积 压缩后 8kb
用于 单页应用
使用率 低
MVC 结构一般都出现在服务器端框架中,Backbone.js 则是最早提供客户端 MVC 的框架之一。它唯一的依赖就是其作者的另一个项目 Underscore.js。

Babel

Babel与Webpack一起,几乎成为编译ES5代码和标准JavaScript中的库(如React(JSX))使用的模板的标准。最初创建用于编译ES6,它成为一个更通用的工具,可以完成任何代码转换,拜一个系统的插件所赐。

Backbone.js 宣称自己是一个库,理由是它可以与其它项目整合。尽管我不像一些人那么武断,但我猜测大多数开发者都会认为它是一个框架。

Flow

Flow不是一个编译器,它是一个用于“注释”JavaScript代码的静态类型检查器。基本上在代码库中使用Flow意味着添加注释来描述期望的类型(点阅读更多了解使用Flow编写模块)。

它在Facebook项目的代码源内使用。因为Facebook成为开源世界的主要角色之一(像React、React Native、Flux、Immutable、Jest等项目),这意味着很多。

优点:

CoffeeScript

2014年JavaScript领域中最受应接的,库及工具。多年来,CoffeeScript由于其精简语法(灵感来自Python和Ruby语法),成为最受欢迎的编译器,但它在2016年不太流行,很多开发人员从CoffeeScript迁移到ES6与Babel。

体积小,轻量级,不那么复杂
不会向 HTML 中添加逻辑
文档非常好
被许多应用程序采用,例如 Trello、WordPress.com、LinkedIn 和 Groupon。
缺点:

七. Build Tools

澳门新萄京官方网站 45

Snip20170204_7.png

在2016年,很难想象一个没有任何构建过程的Web应用程序。通常需要一个构建过程来编译模板和优化资源,以便在生产环境中运行Web应用程序。

与其它竞争者像 AngularJS 相比,抽象的层次较低(尽管这可能也是个优点)
需要由额外的组件来实现像数据绑定这样的功能
现在越来越多的框架已经不再使用 MVC 架构
Ember.js

Webpack

Webpack是用于构建单页应用程序的主要工具,它与React生态系统一起使用。新发布的版本2带来了一些令人鼓舞的增强功能(查看这份介绍)。

Ember.js
类型 框架
网站 emberjs.com
代码库 github.com/emberjs/ember.js
当前版本 2.15.0
开发者 Ember team
发布日期 2011年12月
体积 压缩后 95kb
用于 单页应用
使用率 低
Ember.js 是基于模型—视图—视图模型(MVVM)模式的大型框架之一。它在一个单一包内实现了模板、数据绑定以及其它库的功能。具有 Ruby on Rails 经验的人会对它所倡导的约定优于配置的概念感到很熟悉。

Gulp

Gulp是一个通用的任务运行器,可以用于涉及文件系统的任何类型的自动过程,因此它不是Webpack或Browserify的直接竞争者。

像Grunt一样,Gulp通过聚合工作:你可以要求它缩小和连接资源列表,但是它不会像Webpack或Browserify那样处理模块化JavaScript本身。

然而,它可以很好地与webpack一起工作,即使开发人员倾向于使用npm脚本。

优点:

Browserify

Browserify由于其简单性,受到了node.js开发人员喜爱。

基本上,它需要几个node.js包作为输入,并为浏览器生成一个单一的“构建”文件作为输出。但是似乎一个更有见地的工具像Webpack是一个更好地适合Web应用程序工作流。

为客户端应用开发提供了单一解决方案
由于它使用了 jQuery,开发者会很快上手
良好的向后兼容性和升级选项
采用了现代 web 开发的标准
缺点:

前瞻

2017年的模块捆绑包,强调性能:汇总(rollup)。

它使用ES6模块与一个称为树摇动(Tree shaking)功能创建捆绑包,只包括您在代码中使用的功能,而不是搬运完整的库。

分发包的体积大
相对于其它框架正在朝着小型组件化结构的方向变化,人们认为 Ember.js 比较庞大且不可分割
学习曲线更为陡峭
Knockout.js

八. Testing Frameworks

澳门新萄京官方网站 46

Snip20170204_8.png

最著名的两个测试框架是Jasmine和Mocha,但最近的两个项目在2016年有更多的牵引力:AVA和Jest。

Knockout.js
类型 框架
网站 knockoutjs.com
代码库 github.com/knockout/knockout
当前版本 3.4.2
开发者 Steve Sanderson
发布日期 2010年7月
体积 压缩后 59kb
用于 单页应用
使用率 低
Knockout.js 是较老的 MVVM 框架之一。它使用观察者模式来保证用户界面与数据保持同步。它的特色在于其模板和依赖跟踪。

AVA

AVA,由多产的Sindre Sorhus创建的强调性能(并行测试)和ES6。 AVA的语法接近标准测试框架,如Tape和Node-tap。

优点:

Jest

Jest,另一个Facebook项目,在过去的几周里得到了很大的牵引力。它在React社区中是众所周知的,越来越多的人转向Jest(阅读这篇故事来了解),它可能成为2017年最流行的测试框架。

Jest有内置的良好的模拟能力,而其他测试框架通常依赖于像Sinon.JS这样的库。

体积小,轻量级,无依赖
优异的浏览器兼容性,甚至支持 IE6
良好的文档
缺点:

九. IDE

澳门新萄京官方网站 47

Snip20170204_9.png

关于IDE(Integrated Development Environment,集成开发环境),值得一提的是,两个最流行的IDE是使用Web技术开发的开源项目。

在较大型项目中使用它可能会使项目变得比较复杂
框架本身的开发已经放慢了
使用率已经出现衰落
其它值得关注的项目

Visual Studio Code

在我们的结果中,Microsoft凭借Visual Studio Code遥遥领先。

它提供了一个与TypeScript和node.js的很好的集成。一些开发人员提到关于开发速度,很感谢IntelliSense功能(高亮和自动完成的混合)。

在同一句话中提到“开源”和“微软”不再矛盾了!

还想了解更多的项目吗?下面这些项目的流行程度可能不如上面提到的那些,但也是值得关注的:

Atom

Atom是由Github推动的、并且由Electron构建(像其他一些桌面应用程序,包括Slack桌面客户端),并非远远落后Visual Studio Code。关于Atom的一个有趣的事实:它的主要语言是CoffeeScript!

Polymer :一个使浏览器支持 HTML5 web 组件的库,并且可以跨浏览器工作
Meteor :一个用于开发 web 应用程序的全栈式平台
Aurelia :一个非常新的、轻量级的、跨平台的框架
Svelte :一个非常新的项目,可以将框架代码转换成清晰的 JavaScript 代码
Conditioner.js :一个新的库,能够根据状态自动加载和卸载模块
工具:任务执行

十. Static Site Generators

澳门新萄京官方网站 48

Snip20170204_10.png

静态网站生成器(Static site generators,SSG)是生成一系列HTML、.CSS和JavaScript文件的工具,您可以在任何简单的Web服务器(Apache或NGNX)上部署,而不必大惊小怪,或者设置数据库或任何网络框架。正如Gatsby网站所说:

就像1995年那样建立网站。

静态网站具备快速性、鲁棒性和易维护性。

SSG非常受欢迎,因为有很多很好的解决方案来主持静态网站免费:

  • Github pages

  • Gitlab pages

  • Netlify

  • Surge

  • Now static

构建工具可以自动运行 web 开发过程中各种不同的任务,例如预处理、编译、图片优化、代码压缩、代码检查以及运行测试。这些任务可以统一由一个单独的可执行包来管理。最受人欢迎的选项包括:

Hexo

在2016年,使用node.js构建的最流行的SSG是Hexo。它是一个彻底的SSG,接近CMS系统,可用于构建一个博客,如Wordpress。它有很多功能,包括国际化插件。

Gulp.js

Gatsby

新来的Gatsby是一个非常有趣的解决方案,它从竞争对手脱颖而出,因为它使用React生态系统来生成静态html文件。事实上,您可以组合React组件,Markdown文件和服务器端渲染使它非常强大。

Gulp.js
网站 gulpjs.com
代码库 github.com/gulpjs/gulp
当前版本 3.9.1
月下载量 300万
Gulp 尽管并非第一个任务执行工具,但它迅速成为了最受欢迎的选择并且我个人也非常喜欢它。Gulp 通过非常易读的 JavaScript 代码将源文件加载到流中,并将其通过管道在不同插件之间流转,然后输出。它很简单、快速而且有趣 —— 建议你在选择其它选项之前一定要试一试 Gulp.js。

2016 总结

尽管存在JavaScript疲劳™和戏剧(记住“左键门”),但对于社区而言,随着像Vue.JS和React Native项目的兴起,以及像Yarn或Creat React App的新项目,2016年仍然不啻为一个伟大的年份。

我们一直在谈论的项目,2016年在GitHub得到了吸晴,但真正重要的是开发者的满意度。所以,如果你想要一个更定性的方法,上Sacha Greif查看JavaScript调查的结果,它收集了超过9,000的反馈。


以下是JS.ORG的年度十大选择,以及JS.ORG的想法:

  • Vue.JS:势头强劲,不会停止

  • Electron

  • Create React App

  • React Native

  • Gatsby

  • Yarn: 一个快速,可靠和安全的依赖管理,可以取代npm,点此处了解Node.js包管理器的状态。

  • 渐进式Web应用程序。

  • Node.js微服务使用像Now这样的托管解决方案很容易部署。

  • Node.js的演变:最新版本对ES6语法提供良好的支持。

  • 还有一个选择是GraphQL:据JS.ORG了解,GraphQL将有大动作。

<recommend image="" title="蘑菇街前后端分离实践" link=";

npm

视野拓展

QCon是由InfoQ主办的全球顶级技术盛会,每年在伦敦、北京、东京、纽约、圣保罗、上海、旧金山召开。扫描下图二维码,了解更多信息。

澳门新萄京官方网站 49

QCon北京2017将于4月16日~18日在北京·国家会议中心举行,精心设计了支撑海量业务的互联网架构、大规模网关系统、微服务实践、快速进化的容器生态、智能化运维、互联网广告系统实践、大数据实时计算与流处理和金融科技转型与未来等30来个专题,涵盖架构、大数据、云计算、移动、前端、人工智能等热点领域,将邀请来自Google、Facebook、阿里巴巴、腾讯、百度、美团点评、爱奇艺等典型互联网公司的技术专家,分享技术领域最新成果。敬请期待。

npm
网站 npmjs.com
代码库 github.com/npm/npm
当前版本 4.5.0
月下载量 300万
npm 是 Node.js 的包管理器,但它在脚本方面的能力可以被用于任务执行。npm 脚本对于依赖较少的简单项目非常有吸引力,但当面对复杂任务时它很快就会变成了一个不可行的选择了。

前端之巅

「前端之巅」是InfoQ旗下关注前端技术的垂直社群,投稿请发邮件到editors@cn.infoq.com,注明“前端之巅投稿”。

澳门新萄京官方网站 50

Grunt

Grunt
网站 gruntjs.com
代码库 github.com/gruntjs/grunt
当前版本 1.0.1
月下载量 200万
Grunt 是最早被大范围使用的 JavaScript 任务执行器之一,但是由于运行速度不佳和 JSON 配置复杂,导致被 Gulp 赶超。现在的 Grunt 已经解决了这些原本很糟糕的问题,所以它仍然是一个受欢迎的选择。

工具:模块打包

近年来管理大量 JavaScript 文件已经迅速成了每个项目中的例行任务。默认情况下,在浏览器中文件不会被编译,因此必须按照一定的顺序加载或者连接合并所有的依赖文件。对此现在有像 ES6 模块和 CommonJS 这样的解决方案,但浏览器对它们的支持并不好,所以一个模块打包工具就变得必不可少。

Webpack

Webpack
网站 webpack.js.org
代码库 github.com/webpack/webpack
当前版本 2.5.1
月下载量 600万
Webpack 支持所有流行的模块形式,已经变成了 React 开发过程的标配。Webpack 虽然宣称自己是一个模块打包工具,但它也可以被用作一般的任务执行工具。

Browserify

Browserify
网站 browserify.org
代码库 github.com/substack/node-browserify
当前版本 14.3.0
月下载量 260万
Browserify 支持 Node.js 所使用的 CommonJS 模块,它把所有模块编译成一个单独的可在浏览器中执行的文件。

RequireJS

RequireJS
网站 requirejs.org
代码库 github.com/jrburke/r.js
当前版本 2.3.3
月下载量 100万
RequireJS 是一个运行在浏览器中的模块加载工具,它也可以在 Node.js 中使用。

本人长期维护的前端公众号欢迎大家关注

澳门新萄京官方网站 51

前端那些事

本文由澳门新萄京官方网站发布于澳门新萄京赌场网址,转载请注明出处:2014年JavaScript领域中最受应接的,库及工具

关键词:

  • 上一篇:没有了
  • 下一篇:没有了