2016 JavaScript 后起之秀

redduck 发布于2年前
0 条问题

JavaScript 社区在创新方面全速前进,几个月后,曾经的趋势就会过时。

2016 结束了,你可能会想自己错过了一些重要的事情?别担心,我们将回顾一下主要的趋势。

让我们看看 by the numbers 这个在2016年推动的项目,它比较了在过去12个月,Github上 added 的 stars 数量。

在 2015年, React 成为最大赢家 , Flux 赢得了Flux实现的风暴之战。won by storm the battle of implementations.

谁是2016年JavaScript后起之秀呢?

目录

9.

10.下面的图标对比了在过去12个月中,GitHub上 added 的 stars。

我们分析了来自 bestof.js.org 的项目,关于web平台的最佳项目清单。

#1、2016最流行的项目

回顾

通过检查一年中最火的10个项目,你可以得到一个很好的关于2016年Web开发环境是怎么样的回顾,你会发现:

它讲述了很多关于JavaScript在2016年无所不在和用途广泛的事。

2016年胜利者是...

Vue.JS 去年在 Github 上获得了超过25,000 个stars, 这意味着一天72个stars,这比包括React和Angular在内的框架都多。

vue 2 , 利用虚拟DOM的性能,在去年十月份发布。

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

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

看起来 Vue.JSReact (组件方法)和 AngularJS (由框架特色增强的html代码模板)于一身.

#2前端框架

前端框架类应该对 JavaScript 疲劳 负有一定责任。 看起来,每个月一个新的竞争者做出了嗡嗡声,推动创新的步伐!

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

  • 包含所有功能的全能框架,创建现代web应用(路由, 数据获取, 状态管理). AngularJS , Angular 2 , Ember 或者 Aurelia 均属此类别。

我们已经注意到 Vue.JS (总体第一),让我们看下其他的竞争者。

React 和他的竞争者

React 位列第二,没有前端开发者可以忽视React和它的生态系统。

React 是如此地受欢迎,以至于它鼓舞了众多其他库意图采用React的优点,没有多余的东西,旨在提高浏览器的性能和构建时间。

Inferno 是这个类别中最流行的项目,它声称是最快的可替代React的项目。

在我们的排名中,紧跟 Inferno 之后, Preact 也是一个良好的React 替代品。 它的生态系统相当成熟,例如,具有离线功能的模板、路由、模块,以至于你可以在你的项目中使用任何已经存在的React库。

Angular 1 和 2

Angular 项目分为2 个库,因为 Angular 2重写了Angular 1,尽管一些概念保持相同。

Angular 2 用TypeScript编写,利用ES6 实现现代化、彻底的框架。

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

值得注意的是 Ember , 尽管有强大的生态系统和社区,依然未进入前10.

如此看来, 与其选择”开箱即用“的包含所有特征的框架, 开发者们在2016年 ,更加喜欢选择他们自己的解决方案”按菜单点菜“。

#3、Node.js 框架 在2016年,使用以下解决方案创建和部署node.js应用程序从未如此简单

像Gomix项目甚至降低了Node.js的世界的门槛, 使得任何人都可以轻松地从浏览器中“点点点”书写和分享node.js代码。

那么问题来了,如果你想开发一个web程序,应该选择哪个框架呢?

Express

当你使用 node.js 构建Web应用开发, Express 经常被考虑为事实上的web服务器。它的(一个简单的核心,你可以使用中间件包扩展)哲学为大多数node.js 开发者所熟悉。

Koa

Koa 这些接近于 Express 。但它用ES6 生成器构建,避免有时被称为 回调地狱 的问题。

Feathers

Feathers 是一种创建“面向服务”的体系结构的非常灵活的解决方案。 这是创建一个Node.js微服务不错的选择。

Nodal

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

Keystone

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

Sails

Sails 是一个完整的MVC框架。 受Ruby on Rails的启发(因此名为 S ails!).他已经问世很长时间了。 可以和任何类型的数据库使用,SQL或no-SQL。

Loopback

Loopback 是一个有很多的内置功能,包括与令牌认证和连接到任何数据库的另一个成熟的框架。

他的杀手级特性是 API explorer ,通过检查任何用户令牌的能力,以直观的方式让开发人员检查所有API端点。 如果你必须构建一个API,这绝对是一个不错的选择。

#4、React Boilerplates

React 是一个伟大的 UI 库,但使用React和现代Web开发工作流工具需要大量的配置。 那么如何开始创建一个真实世界的应用程序呢? 这是 React "boilerplates" 和其他的“初学者工具包”给出的答案···

创建 React App

Facebook 通过提供一个轻松的叫做 创建 React App 方法实现需要, 这是使得启动一个新 React 项目非常方便。

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

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

React boilerplate

名为React的样板文件有您需要的一切, 包括Redux和一些友好的离线功能,利用web工作者技术。

它让开发人员创建名为Progressive Web Applications(或PWA)的Web应用程序: 使用名为Service Worker的技术运行的离线Web应用程序, 阅读来自 Nicolás Bevacqua的 这篇文章 .

Next.js

Next.js由忙碌的Zeit人员创建,具有服务器端呈现功能, 可用于创建通用应用程序(或同构应用程序,如我们在2015年所说), 亦即,在代码客户端和服务器端用差不多的代码运行应用程序。

#5、Mobile

JavaScript无处不在,你可以使用已知的web开发技术 (HTML, JavaScript, CSS)构建原生移动应用。

React Native

通过React Native,在同样的代码基础上,你可以构建IOS和Android原生移动应用, 使用React开发人员熟悉的概念。 想了解更多关于构建IOS和Android应用,阅读这个 教程

其他解决方案,基于 Cordova,依赖Webview来渲染屏幕,并且不如原生解决方案高效。 "一次编写,到处运行"... 开发者梦想成真了!

Ionic

Ionic 是混合应用理念的先锋,在底层,它基于Cordova来访问移动设备功能。 它非常成熟,有着强大的生态系统。

NativeScript

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

展望未来..

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

#6、编译器

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

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

TypeScript

最流行的转译器是 TypeScript ,它带给web开发者来自java和c#的静态类型。 事实上, Angular 2 使用TypeScript 增加了更多的牵引 这儿有关于在js中使用此类型的利弊,阅读这两篇文章,提出你自己的观点。

Babel

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

Flow

Flow 不是一个编译器,用 静态类型检查js代码。 基本流程内使用的代码中添加注释来描述装置类型(阅读这里更多关于使用Flow写模块) Flow is not a compiler, it's a static type checker used to "annotate" the JavaScript code. Basically using Flow inside a code base means adding comments to describe expected types (read more about using Flow to write modules here ).

它使用Facebook内部的源代码项目,(React,React Native,Flux,Immutable,Jest等)Facebook成为开源世界的主演。

CoffeeScript

CoffeeScript 和其精简的语法,受 Python 和Ruby 语法启发,但它在2016年不太流行, 大量的开发者通过使用Babel从 CoffeeScript 转移到ES6。

#7、构建工具

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

Webpack

Webpack 是被用来构建单页应用的主要工具,在React生态系统中运行 新发布的版本2带有一些有前途的增强功能(查看本文介绍 introduction

Gulp

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

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

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

Browserify

Browserify ,由于其简单的特性,通常深受node.js开发者的喜爱。

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

Basically it takes several node.js packages as an input and generates one single "build" file for the browser as an output. But it seems that a more opinionated tool like Webpack is a a better fit to web application workflows.

展望未来...

在2017年应该关注的模块管理器,它强调性能: rollup .

它使用ES6模块及一个称为”Tree shaking “功能创建包, 只包括您在代码中使用到的功能,而非传输整个库。

#8测试框架

最有名的两个测试框架是 JasmineMocha , 但最近两个项目在2016年有更多的牵引力: AVAJest .

AVA

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

Jest

Jest ,另一个 Facebook 项目, got a lot of traction over the last weeks. It's well-known in the React community, more and more people are moving to Jest (read this story for example) and it may become the most popular testing framework in 2017. 在过去几周里有很多牵引力。 在React社区众所周知,越来越多的人转向Jest(例如阅读这个故事), 它可能成为2017年最流行的测试框架。 Jest has good mocking abilities built-in, whereas other testing frameworks usually rely on libraries like Sinon.JS . Jest内置了良好的mocking 功能,而其他测试框架通常依赖于[Sinon.JS]( http://sinonjs.org/)这样的库。

#9、IDE

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

Visual Studio Code

在我们的调查结果中,微软以 Visual Studio Code 带路。

它提供了关于 TypeScript 和 node.js的良好集成. 一些开发人员提到关于开发速度感谢IntelliSense功能的改进(和自动完成).

微软和开源在同一句话里出现,没毛病!

Atom

Atom , 由Github推出,pushed by Github and built with Electron (like several other 桌面应用, including the Slack desktop client) is not far behind Visual Studio Code . 一个关于 Atom 有趣的事实是: 它主要的语言是 CoffeeScript!

#10、静态网站生成器

 

静态网站生成器是生成一系列.html, .css 和 JavaScript文件的工具, 您可以在任何简单的web服务器(Apache或NGNX)上部署, 而不用大惊小怪,或者设置数据库或任何web框架。 正如比尔盖茨所说:

Static site generators (or "SSG") are tools that generate a bunch of .html, .css and JavaScript files that you can deploy on any simple web server (Apache or NGNX) without the fuss or a setting up a database or any web framework. As Gatsby site says:

Build sites like it's 1995

建站就像是在1995年

静态网站快速,强大,易于维护。

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

Hexo

在2016年, 接近于像Wordpress这样的CMS系统,

In 2016, the most popular SSG built with node.js was Hexo . It's a thorough SSG, close to CMS systems like Wordpress, that can be used to build a blog for example. 他有很多功能,包括国际化插件。

Gatsby

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

#结论

尽管 JavaScript 疲劳™ 和 the dramas (还记得 "leftpad gate" ), 随着如 Vue.JSReact Native 项目的崛起, 以及新项目如 YarnCreate React App . 对社区而言,2016是一个伟大的年份, 我们一直在谈论2016年Github上的项目,但是我们是开发者的满意度。 那么,如果你 我们已经收集了超过9,000份答卷。

查看原文:2016 JavaScript 后起之秀

需要 登录 后回复方可回复, 如果你还没有账号你可以 注册 一个帐号。