近几年 JS 社区创新和演化的速度是有目共睹的,几个月前比较时髦的技术很可能现在已经过时了。

2016 已经过去,你有没有担心错过了什么重要的内容?在这篇调查报告中我们会为你解读社区的主流趋势。

我们将从数量上来分析哪些项目 2016 年获得比较多的关注,具体的做法是比较各项目 2016 年在 GitHub 上新增 star 的数量。

回顾 2015 年:React 无疑占据了统治地位,而 Redux 则在众多牛毛的 Flux 实现中脱颖而出。那么 2016 年哪些项目最受开发者关注呢?


下列图表对比了各个项目 GitHub 上 2016 年新增 star 的数量。分析的项目主要来自 Best of JS,这里列出了 WEB 领域的最佳项目。

最受欢迎项目

1
Vue.js

Vue.js

🖖 A progressive, incrementally-adoptable JavaScript framework for building UI on the web.
+26.4k

Trends in 2016

1.6k
948
1.3k
2.0k
2.0k
1.7k
2.1k
2.2k
2.7k
3.7k
3.2k
3.0k
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2013/7
  • Total stars
    79.3k

Links

2
React

React

A declarative, efficient, and flexible JavaScript library for building user interfaces.
+22.9k

Trends in 2016

1.8k
1.5k
2.2k
2.0k
1.6k
1.6k
2.0k
1.8k
2.4k
2.2k
2.1k
1.8k
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2013/5
  • Total stars
    85.4k

Links

3
Electron

Electron

Build cross platform desktop apps with JavaScript, HTML, and CSS
+18.2k

Trends in 2016

1.5k
1.1k
1.8k
1.3k
3.4k
1.5k
1.3k
1.3k
1.4k
1.2k
1.2k
1.2k
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2013/4
  • Total stars
    55.1k

Links

4
React Native

React Native

A framework for building native apps with React.
+17.5k

Trends in 2016

1.8k
1.3k
1.8k
1.8k
1.4k
1.4k
1.4k
1.3k
1.4k
1.4k
1.3k
1.2k
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2015/1
  • Total stars
    58.3k

Links

5
Redux

Redux

Predictable state container for JavaScript apps
+15.2k

Trends in 2016

1.7k
1.5k
1.5k
1.3k
1.3k
1.2k
1.1k
1.2k
1.2k
1.1k
1.1k
932
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2015/5
  • Total stars
    37.2k

Links

概览

仔细观察 2016 年排名前 10 的项目,你就能对 WEB 社区的演化方向有个直观的把握,概括如下:

上面这些项目覆盖的领域,无疑证明了 JS 的通用性,印证了那句话:能被 JS 编写的,迟早都会被 JS 编写

2016 年的胜出项目是... 🏆

Vue.js 2016 年新增超过 25000 个 star,意味着平均每天新增 72 个 star,超过了所有同类项目的流行速度,比如 React 和 Angular。 采用 Virtual DOM 来增强性能的 Vue.JS v2 于 2016 年 10 月发布。

Vue.js 已经被不少大公司用在了生产环境中,比如中国最大的电子商务网站阿里巴巴,所以你可以将 Vue.js 作为一个安全的选择。

围绕着 Vue.js 的社区生态也日趋成熟,包括路由库(vue-router)和状态管理库(Vuex)。Vue.js 兼具了 ReactAngular 1 两者的优点,其中 React 的基本思想是组件式开发,而 Angular 1 是模板增强。

前端框架

1
Vue.js

Vue.js

🖖 A progressive, incrementally-adoptable JavaScript framework for building UI on the web.
+26.4k

Trends in 2016

1.6k
948
1.3k
2.0k
2.0k
1.7k
2.1k
2.2k
2.7k
3.7k
3.2k
3.0k
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2013/7
  • Total stars
    79.3k

Links

2
React

React

A declarative, efficient, and flexible JavaScript library for building user interfaces.
+22.9k

Trends in 2016

1.8k
1.5k
2.2k
2.0k
1.6k
1.6k
2.0k
1.8k
2.4k
2.2k
2.1k
1.8k
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2013/5
  • Total stars
    85.4k

Links

3
Angular

Angular

One framework. Mobile & desktop.
+10.4k

Trends in 2016

N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
8.1k
675
688
901
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2014/9
  • Total stars
    31.8k

Links

4
Angular 1

Angular 1

AngularJS - HTML enhanced for web apps!
+8.5k

Trends in 2016

973
829
843
653
714
708
707
717
746
533
575
532
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2010/1
  • Total stars
    57.8k

Links

5
Inferno

Inferno

An extremely fast, React-like JavaScript library for building modern user interfaces
+6.9k

Trends in 2016

80
95
52
114
48
1.5k
453
127
1.1k
217
652
2.4k
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2015/2
  • Total stars
    12.0k

Links

前端框架 的百花齐放也许是出现 JS 疲劳 的原因所在,新的框架、工具和库层出不穷,把创新的车轮推向前进。

概括来讲,前端框架可以分为两大类:

  • 大而全的框架,包括创建现代 WEB 应用的所有功能特性,比如路由、数据获取、状态管理,典型项目有:Angular 1AngularEmberAurelia
  • 小而美、聚焦在 UI 层面的解决方案,典型项目有 ReactVue.jsInferno...

前文中我们已经探讨了排名第 1 的项目 Vue.js,下面来看看其他竞争者:

React 及其竞争者

React 排名第 2,所有开发者都知道 React 有着庞大的社区和完整的生态系统。

React 设计思想非常流行,受 React 启发而诞生了大量类 React 项目,这些项目继承 React 优点的同时有非常大的改进,比如各种能提高性能和缩短构建时间的瘦身版本。

Inferno 在类 React 项目中是最受欢迎的,它自己则标榜是所有竞争者中性能最快的。

Preact 也是一个非常不错的选择,它也有不错的生态,比如各种脚手架、路由,甚至还有一个 compact 模块让任何能在 React 环境运行的库在 Preact 中运行。

Angular 1 和 Angular 2

Angular 项目已经被拆分成两个仓库,因为 Angular 2 几乎是 Angular 1 的全面重写,虽然两者在部分概念上是相同的。

Angular 全部用 TypeScript 编写,这样它利用 ES6 语法特性提供了现代的、全面的 WEB 框架。

Angular 1 (在 GitHub 上称作 "AngularJS") 目前仍然被大量的项目使用,目测会持续流行一段时间。

此外,不得不提的 Ember, 虽然社区和生态都很大,但是没有排到前 10 名。

整体来看,相比于那些开箱即用的大而全的框架,开发者更青睐自己组合使用那些小而美的轻量级解决方案,因为这样给了他们更大的自由度。

Node.js 框架

1
Express

Express

Fast, unopinionated, minimalist web framework for node.
+6.9k

Trends in 2016

535
655
736
643
618
551
566
559
490
458
582
483
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2009/6
  • Total stars
    36.0k

Links

2
Koa

Koa

Expressive middleware for node.js using ES2017 async functions
+5.0k

Trends in 2016

591
387
428
414
436
342
367
466
425
374
380
402
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2013/7
  • Total stars
    19.1k

Links

3
Feathers

Feathers

A REST and realtime API layer for modern applications.
+4.1k

Trends in 2016

57
59
2.0k
428
212
158
131
217
140
180
267
201
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2011/10
  • Total stars
    8.2k

Links

4
Keystone

Keystone

node.js cms and web app framework
+3.6k

Trends in 2016

289
290
300
336
293
290
278
318
315
267
321
282
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2013/7
  • Total stars
    11.7k

Links

5
Sails

Sails

Realtime MVC Framework for Node.js
+3.2k

Trends in 2016

295
334
354
290
295
246
234
241
201
214
249
223
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2012/3
  • Total stars
    18.2k

Links

2016 年创建和部署 Node.js 应用变得空前的容易,比如下面这些解决方案:

类似于 Glitch 的项目则把 Node.js 的门槛降到不能再低,只需要通过浏览器简单的点击拖拽就都能轻而易举的编写分享 Node.js 代码。

那么,如果想创建一个 WEB 应用,我们该选哪个框架呢?

Express

Express 已经成为开发 Node.js WEB 应用的标准框架,大多数工程师都很熟悉他的设计思想(极简的内核,但能让你用各种中间件来扩展他的功能)。

Koa

Koa,设计思想非常类似 Express,区别在于它是使用 ES6 中的 generator 编写的,这种写法解决了大家所熟知的回调地狱 问题。

Feathers

Feathers,是用来实现面向服务架构的一种灵活的解决方案,非常适合创建 Node.js 微服务。

Nodal

Nodal,用来创建基于 PostgreSQL 的无状态的、分布式的服务。

Keystone

Keystone,是我所知的快速搭建基于 MongoDB 的管理后台的最佳解决方案,Keystone.js 基于数据模型的定义即可自动生成后台界面,支持常见的增删改查操作和灵活的数据过滤。

Sails

Sails,是一个全能的 MVC 框架,主要是受到 Ruby on Rails 启发,他已经存在很长时间,支持各种数据库,不管是 SQL 还是 No-SQL。

Loopback

Loopback,内置了很多特性的成熟框架,支持基于 token 的认证,支持各种数据库。 loopback 的“杀手锏”功能是 API 浏览器,该功能能让开发者用非常直观的方式查看所有的 API 接口,如果你需要创建 API 服务的话,它无疑是个很好的选择。

React 项目模板

1
Create React App

Create React App

Create React apps with no build configuration.
+9.5k

Trends in 2016

N/A
N/A
N/A
N/A
N/A
N/A
N/A
1.6k
2.4k
2.1k
1.7k
1.8k
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2016/7
  • Total stars
    40.7k

Links

2
Material UI

Material UI

React components that implement Google's Material Design.
+9.4k

Trends in 2016

705
668
860
879
854
753
796
821
794
761
750
722
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2014/8
  • Total stars
    32.1k

Links

3
React Router

React Router

Declarative routing for React
+9.1k

Trends in 2016

961
685
750
744
709
716
673
753
1.0k
756
661
647
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2014/5
  • Total stars
    27.4k

Links

4
React boilerplate

React boilerplate

A highly scalable, offline-first foundation with the best developer experience and a focus on
+8.9k

Trends in 2016

703
178
276
170
3.6k
843
523
473
675
478
536
532
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2015/2
  • Total stars
    16.7k

Links

5
React Starter Kit

React Starter Kit

React Starter Kit — isomorphic web app boilerplate (Node.js, Express, GraphQL, React.js, Babel, Post
+6.3k

Trends in 2016

573
516
569
540
571
551
525
613
517
474
489
368
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2014/4
  • Total stars
    16.6k

Links

React 是非常棒的 UI 库,但是基于现代 WEB 应用开发工作流创建 React 应用时仍然需要大量的配置,才能把所有的部分拼凑到一起,如何创建一个“真实”的 React 应用呢?各种 React 项目模板(boilerplates)和启动工具箱(starter kits)就是来解决这个问题的,典型的有下面几个:

Create React App

Facebook 开源的,轻量级的解决方案,使用 Create React App 创建 React 应用非常的简单。Create React App 的作者 Dan Abramov (也是 Redux 的作者,目前供职于 Facebook) 在功能丰富和简单可靠之间取得了很好的平衡,没有酷炫的样式解决方案 (仅需要纯粹的 CSS) ,没有服务端渲染,但是 React 应用开发的其他方面都浑然一体,开发者体验也非常棒。

相比于同类工具,如果你使用了 Create React App,它会成为你项目的依赖,所有的黑科技都是不可见的,你只能看到你自己的应用代码,你可以随时更新这个依赖。

React boilerplate

React boilerplate 则包含了 React 应用所需的一切,包括 Redux 以及基于 Web Worker 实现的离线功能。使用它可以创建“渐进式 Web 应用”(亦称“PWA”),如果想了解更多 PWA 的知识,可以阅读 Nicolás Bevacqua 的 这篇文章

Next.js

Next.js, 由来自 Zeit 的 busy folks 创建,支持服务端渲染,可以用来创建 universal 应用(或者“同构应用”),直白的说,这种应用的前后端可以运行相同的代码。

移动开发

1
React Native

React Native

A framework for building native apps with React.
+17.5k

Trends in 2016

1.8k
1.3k
1.8k
1.8k
1.4k
1.4k
1.4k
1.3k
1.4k
1.4k
1.3k
1.2k
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2015/1
  • Total stars
    58.3k

Links

2
Ionic

Ionic

Build amazing native and progressive web apps with open web technologies. One app running on everyth
+6.0k

Trends in 2016

705
548
581
488
468
504
459
438
480
444
471
438
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2013/8
  • Total stars
    32.9k

Links

3
NativeScript

NativeScript

NativeScript is an open source framework for building truly native mobile apps with JavaScript. Use
+3.7k

Trends in 2016

340
342
273
262
416
270
365
281
312
281
313
294
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2015/3
  • Total stars
    12.1k

Links

JS 的通用性是毋庸置疑的,现如今可以用 WEB 工程师非常熟悉的技术(HTML、JS、CSS)构建 Native 移动应用。下面是几个典型的解决方案:

React Native

使用 React Native,可以用类似于 React 思路,用同一份代码构建出支持 iOS 和 Android 平台的、真正的 Native 应用,想了解如何构建跨平台的更多内容?建议阅读这篇教程。

其他基于 Cordova 的方案多使用 Webview 来渲染页面,相比于 Native 应用运行时性能会大打折扣,不过,开发者那种 “Write Once Run Everywhere” 的梦想终于成真了!

Ionic

Ionic 是 “hybird” 应用开发领域的先锋,底层基于 Cordova 来访问移动设备的系统功能,社区和生态系统非常成熟。

NativeScript

NativeScriptReact Native 的目标是相同的,即基于 WEB 技术构建 Native 应用,其核心分为两部分:NativeScript 内核,NativeScript + Angular 2。

展望未来...

Weex 是 2017 年需要密切留意的项目,他是基于 Vue.js 的、用来创建跨平台移动应用的框架。

编译工具

1
TypeScript

TypeScript

TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
+9.4k

Trends in 2016

651
601
754
741
685
794
971
805
966
877
846
732
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2014/6
  • Total stars
    29.8k

Links

2
Babel

Babel

Babel is a compiler for writing next generation JavaScript.
+6.6k

Trends in 2016

772
624
660
570
548
484
482
529
484
497
437
483
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2014/9
  • Total stars
    25.2k

Links

3
Reason

Reason

Simple, fast & type safe code that leverages the JavaScript & OCaml ecosystems
+1.9k

Trends in 2016

N/A
N/A
N/A
N/A
1.1k
98
112
63
133
152
94
99
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2015/11
  • Total stars
    4.6k

Links

4
CoffeeScript

CoffeeScript

Unfancy JavaScript
+1.2k

Trends in 2016

136
121
127
124
114
103
83
91
84
74
69
98
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2009/12
  • Total stars
    14.5k

Links

5
ClojureScript

ClojureScript

Clojure to JS compiler
+1.2k

Trends in 2016

126
100
106
103
112
91
82
82
85
61
100
108
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2011/7
  • Total stars
    7.5k

Links

我们这里讨论的是把其他语言或者 JS 变体编译(Compiler)或转换成(Transpiler)标准 JS 代码的工具,这些工具生产出来的代码可以在浏览器或者 Node.js 环境中执行。

最常见的场景是,这类编译工具能够让开发者使用 ES6 语法编写代码,而不用担心浏览器支持情况。

TypeScript

最具潜力的编译工具可能是 TypeScript 了,它为 JS 带来了类似于 Java 和 C# 的静态类型,而 Angular 完全使用 TypeScript 的事实让他看起来更诱人,当然关于在 JS 使用静态类型的讨论有很多,建议阅读下面这两篇文章来做出自己的决定:

Babel

Babel + webpack 已经成了 ES6 代码转换、React 模板编译的标准工具组合,Babel 最初是用来编译 ES6 的,但得益于他的插件系统,如今俨然已经演化成一个用途广泛,几乎能实现各种代码转换的工具。

Flow

Flow 并不是一个编译工具,它只是一个基于 JS 代码标记的静态类型检查工具,也就是说,使用 Flow 时需要在代码中添加各种注释来注明需要的数据类型,关于 Flow 的使用,可以阅读这篇文章

Flow 在很多 Facebook 项目的源代码中都有使用,而 Facebook 已经成为开源社区的重要玩家,开源了 ReactReact NativeFluxImmutableJest 等众多的项目,相信你明白这意味着什么。

CoffeeScript

CoffeeScript 的简洁语法大量借鉴了 Python 和 Ruby 的语言特性,过去几年曾经是最受欢迎的编译器,但 2016 年很多开发者从 CoffeeScript 转向了 ES6 + Babel 组合。

构建工具

1
Webpack

Webpack

A bundler for javascript and friends. Packs many modules into a few bundled assets. Code Splitting a
+11.2k

Trends in 2016

912
805
892
883
755
856
918
1.0k
885
1.2k
1.1k
1.0k
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2012/3
  • Total stars
    35.7k

Links

2
Gulp

Gulp

The streaming build system
+6.3k

Trends in 2016

622
549
657
573
532
497
547
510
470
489
481
357
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2013/7
  • Total stars
    28.4k

Links

3
Rollup

Rollup

Next-generation ES6 module bundler
+5.2k

Trends in 2016

402
458
452
322
387
340
321
721
610
481
341
324
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2015/5
  • Total stars
    11.5k

Links

4
Browserify

Browserify

browser-side require() the node.js way
+1.7k

Trends in 2016

184
188
163
143
124
129
141
133
129
127
120
80
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2010/9
  • Total stars
    11.7k

Links

5
Grunt

Grunt

Grunt: The JavaScript Task Runner
+889

Trends in 2016

99
107
100
89
66
64
76
62
39
54
63
70
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2011/9
  • Total stars
    11.7k

Links

2016 年“构建过程”似乎成了 WEB 项目的标配,如果一个 WEB 应用没有构建过程是难以想象的事情,在构建过程中通常你需要做编译模板、静态资源合并压缩之类的事情,以为生产环境做好准备。

Webpack

Webpack 是构建单页应用(SPA)的主要工具,它和 React 生态结合的非常好,最新发布的 Webpack 2 带来了不少非常有前景的改进,具体可以阅读这里

Gulp

Gulp 是一个通用的任务运行工具,可以在任何和文件系统打交道的自动化流程中使用,可以认为它并不是 WebpackBrowserify 的直接竞争者。

Grunt 类似,Gulp 的主要角色是任务管理,你可以让它压缩合并代码,但是它不会帮你处理 JS 模块化问题,而 WebpackBrowserify 是可以的。

当然了,Gulp 可以和 Webpack 结合起来使用,即使开发者倾向于使用 npm script 也是可以的,实际上很多开发者就是这么做的。

Browserify

Browserify 因为非常简单,在 Node.js 工程师群体中比较受欢迎。简单来说,它把多个 Node.js 的包作为输入,然后输出单个编译后的文件。相比而言,Webpack 在 WEB 应用打包方面考量更多,更适合现代的 WEB 开发工作流。

展望未来...

2017 年需要留意的模块打包工具是 Rollup,它强调的是性能,基于 ES6 的模块规范,并且支持 Tree Shaking 这种黑科技,构建产生的结果只包含实际业务逻辑用到的代码,而不是简单的文件合并。

测试框架

1
AVA

AVA

Futuristic JavaScript test runner
+5.5k

Trends in 2016

321
604
989
447
408
421
428
450
381
363
321
333
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2014/11
  • Total stars
    12.4k

Links

2
Jest

Jest

🃏 Delightful JavaScript Testing.
+3.9k

Trends in 2016

116
96
166
189
139
153
139
222
929
502
475
792
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2013/12
  • Total stars
    14.7k

Links

3
Mocha

Mocha

☕️ simple, flexible, fun javascript test framework for node.js & the browser
+2.9k

Trends in 2016

267
219
280
203
238
256
279
281
202
215
260
242
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2011/3
  • Total stars
    14.3k

Links

4
Jasmine

Jasmine

Simple JavaScript testing framework for browsers and node.js
+1.8k

Trends in 2016

192
172
184
183
150
140
162
144
167
113
127
99
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2008/12
  • Total stars
    13.2k

Links

5
Tape

Tape

tap-producing test harness for node and browsers
+1.7k

Trends in 2016

174
142
172
144
128
147
114
119
122
166
108
123
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2012/11
  • Total stars
    4.3k

Links

相比于流行了很久的测试框架 JasmineMocha,2016 年出现了 2 个更新的、并有很多人使用的测试框架:AVAJest

AVA

AVA 由非常高产的 Sindre Sorhus 开发和维护,其标榜的重点是性能和 ES6,能够并行的运行测试。AVA 的语法非常类似 TapeNode-tap

Jest

Jest,又一个 Facebook 开源项目,最近几个月引起了大量的开发者注意,在 React 社区更加流行,并且越来越多的人开始迁移到 Jest,可以阅读这个故事,2017 年 Jest 极有可能成为最受欢迎的测试框架。

Jest 内置了非常强大的 Mock 特性,而其他的测试框架通常需要依赖第三方的 Mock 包,比如 Sinon.JS.

IDE

1
VS Code

VS Code

Visual Studio Code
+11.8k

Trends in 2016

907
739
983
1.8k
989
813
775
763
938
984
1.1k
1.0k
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2015/9
  • Total stars
    41.8k

Links

2
Atom

Atom

The hackable text editor
+10.1k

Trends in 2016

977
817
1.0k
969
841
787
669
885
797
847
780
733
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2012/1
  • Total stars
    42.7k

Links

3
Brackets

Brackets

An open source code editor for the web, written in JavaScript, HTML and CSS.
+2.4k

Trends in 2016

263
251
209
174
199
225
176
144
168
173
226
161
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2011/12
  • Total stars
    28.6k

Links

4
Deco IDE

Deco IDE

The React Native IDE
+1.1k

Trends in 2016

N/A
N/A
N/A
N/A
N/A
408
176
161
124
84
112
76
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2016/5
  • Total stars
    5.5k

Links

说到 IDE(集成开发环境,Integrated Development Environment),令人振奋的是最受欢迎的 2 款 IDE 都是用 WEB 技术开发的开源项目。

VS Code

微软的 VS Code 在 WEB 开发者群体中非常受欢迎,因为他提供了非常棒的 TypeScript 和 Node.js 集成,部分开发者甚至特别提到 VS Code智能感知功能极大的提高了开发效率。现在把微软和开源放在一起,终于不那么违和了。

Atom

Atom 由 GitHub 开源,使用 Electron 构建,在受欢迎程度上并没有落后 VS Code 太多,关于 Atom 的一个有趣事实是,他所使用的主要语言是 CoffeeScript。

静态网站生成器

1
Hexo

Hexo

A fast, simple & powerful blog framework, powered by Node.js.
+5.9k

Trends in 2016

497
406
516
559
562
428
449
526
510
446
464
516
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2012/9
  • Total stars
    20.1k

Links

2
Gatsby

Gatsby

⚛️📄🚀 Blazing fast static site generator for React
+4.9k

Trends in 2016

112
235
211
182
126
175
1.3k
385
279
469
1.0k
382
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2015/5
  • Total stars
    17.1k

Links

3
Metalsmith

Metalsmith

An extremely simple, pluggable static site generator.
+1.2k

Trends in 2016

126
151
108
112
97
98
89
120
101
89
52
75
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月

GitHub data

  • 创建于
    2014/2
  • Total stars
    6.5k

Links

静态网站生成器(SSG)是指能够生成一大坨 HTML、CSS、JS 文件方便你快速部署到简单的 WEB 服务器上而不用安装和配置数据库的工具。就像 Gatsby 所标榜的:

像 1995 年那样构建网站。

静态网站的特点是速度快、健壮行高、容易维护。

静态网站如此流行的重要原因是市面上有很多非常好用并且免费的静态网站托管解决方案,比如:

Hexo

2016 年最流行的静态网站生成工具是 Hexo,他有点类似于 Workdpress 这样的 CMS 系统,可以用来方便的创建博客网站,他还有很多其他的特性,比如国际化插件。

Gatsby

新玩家 Gatsby 是一个比较有趣的解决方案,相比于竞争者优秀的地方在于:它使用 React 生态系统来生成静态文件,可以组合 React Component、Markdown 和服务端渲染来完成静态网站生成让他更强大。

总结

虽然 2016 年出现了“JS 疲劳”,也发生了戏剧性的事件(如 "leftpad 门"),但总体来讲 2016 年对 JS 社区来说是非常重要的一年,部分项目在 2016 年崛起,如 Vue.jsReact Native,还有些黑马项目 2016 年诞生,如 YarnCreate React App

我们谈论了 2016 年 GitHub 上最受瞩目的开源项目,但是真正重要的是开发者的满意度,如果你想就这个话题有更量化的认识,建议去看看 Sacha Greif 的调查 State of JavaScript,该调查收集了超过 9000 份问卷。


接下来该思考 2017 年了,哪些将会持续获得开发者的青睐?哪些会成为新星呢? 下面是我精选的 10 个我 2016 年比较欣赏,并且 2017 年会继续保持增长的项目或创意:

  • Vue.js:还在快速增长阶段
  • Electron
  • Create React App
  • React Native
  • Gatsby (你浏览的这个页面就是用它来构建的)
  • Yarn:快速、可靠并且安全的依赖管理工具,可以直接替代 npm,建议阅读文章 yarn vs npm
  • PWA(Progressive Web Applications)渐进式 WEB 应用
  • Node.js 微服务的一站式部署和运行解决方案,比如 Now
  • Node.js 的进化:最新版本对 ES6 语法的支持已经非常好了
  • 最后是 GraphQL:我身边不少朋友说这会是一个大的进步

感谢你花时间阅读本文,可以尽情把本文分享出去,有疑问可以到 GitHub 上发起 Issue 或直接联系我们。

Chinese (simplified) version

Authors

Sacha Grief
Author of Discover Meteor and creator of Vulcan, a React+GraphQL open-source framework.

Available Translations

English

日本語