博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(译 & 转载) 2016 JavaScript 后起之秀
阅读量:6265 次
发布时间:2019-06-22

本文共 5787 字,大约阅读时间需要 19 分钟。

2016 JavaScript 后起之秀

本文转载自:

译者:
链接:
原文:

【译者注:】因格式问题,图片相关的内容,请参照英文原文:

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

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

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

在 2015年, 成为最大赢家 , 赢得了Flux实现的风暴之战。

谁是2016年JavaScript后起之秀呢?

目录

1. 2016最流行的项目

2. 前端框架

3. Node.js 框架

4. React Boilerplates

5. Mobile

6. 编译器

7. 构建工具

8. 测试框架

9. IDE

10. 静态网站生成器

下面的图表对比了在过去12个月中,GitHub上 增加的 stars。

我们分析了来自 (关于web平台的最佳项目清单)的项目。

1、2016最流行的项目

回顾

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

  • 3个 UI 框架: , 和

  • 一个新的 node.js 包管理器:

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

  • 快速开始一个新 React 项目的方案A

  • 移动框架:

  • 最有名的 CSS 工具包:

  • 基于函数式的状态管理库 :

  • 一个强大而又灵活的图标库:

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

2016年胜利者是...

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

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

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

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

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


2前端框架

前端框架类应该对 负有一定责任。

看起来,每个月一个新的竞争者出现并发出自己的声音,推动创新的步伐!

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

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

  • UI层更轻的解决方案, 如 , , ...

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

React 和他的竞争者

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

是如此地受欢迎,以至于它鼓舞了众多其他库意图取其精华,去其糟粕,旨在提高浏览器的性能和构建时间。

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

在我们的排名中,紧跟 Inferno 之后, 也是一个良好的React 替代品。

它的生态系统相当成熟,例如,具有离线功能的模板、路由、模块,以至于你可以在你的项目中使用任何你Preact项目里面的已存在的React库。

Angular 1 和 2

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

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

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

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

如此看来, 与其选择”开箱即用“的包含所有特征的框架,

开发者们在2016年 ,更加喜欢选择他们自己的解决方案,”按菜单点菜“。

3、Node.js 框架

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

像Gomix项目更是降低了Node.js的世界的门槛,

使得任何人都可以轻松地从浏览器中“点点点”书写和分享node.js代码。

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

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

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

是一种创建“面向服务”的体系结构的非常灵活的解决方案。

这是创建一个Node.js微服务不错的选择。

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

是我所知得到一个管理客户端运行的最佳解决方案之一 ,

目的是管理从MongoDB数据库来的内容。
管理界面从模型自动生成,具有所有CRUD操作和友好的过滤器。

是一个完整的MVC框架。

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

是一个有很多的内置功能,包括需要token验证的权限和连接到任何数据库的另一个成熟的框架。

他的杀手级特性是 API 探测功能,通过检查任何用户token的功能,以直观的方式让开发人员检查所有API端点。

如果你必须构建一个API,这绝对是一个不错的选择。


4、React 模板生成器

React 是一个伟大的 UI 库,但使用React和现代Web开发工作流工具需要大量的配置。

那么如何开始创建一个真实世界的应用程序呢?
这是 React "模板生成器" 和其他的“初学者工具包”给出的答案···

Facebook 通过提供一个轻松的叫做方法实现需要,

这是使得启动一个新 React 项目非常方便。

(Redux的创造者,现在在Facebook工作)做了一项伟大的工作:

找到简单和特征之间的正确平衡。
例如,没有花哨的样式解决方案(只是简单的CSS),没有服务器端渲染,
但一切都被很好的打包,开发体验非常棒。

与其竞争者的主要区别是,如果使用Create React App,它将成为项目的依赖项,

所有的黑科技都是隐藏的,你看到的只是你的应用程序代码。
您可以随时升级依赖关系,它不只是一个开始。

名为React的样板文件有您需要的一模板生成器切,

包括Redux和一些友好的离线功能,很好地利用了web工作者的技术优势。

它让开发人员创建名为渐进式web应用(或PWA)的Web应用程序:

使用名为Service Worker的技术运行的离线Web应用程序,
阅读来自 Nicolás Bevacqua的 .

Next.js由忙碌的Zeit人员创建,具有服务器端渲染特性,

可用于创建通用应用程序(或同构应用程序,如我们在2015年所说),
亦即,在代码客户端和服务器端用差不多的代码运行应用程序。


5、Mobile

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

通过React Native,在同样的代码基础上,你可以构建IOS和Android原生移动应用,

使用React开发人员熟悉的概念。
想了解更多关于构建IOS和Android应用,阅读这个

其他解决方案,基于 Cordova,依赖Webview来渲染屏幕,并且不如原生解决方案高效。

"一次编写,到处运行"... 开发者梦想成真了!

是混合应用理念的先锋,在底层,它基于Cordova来访问移动设备功能。

它非常成熟,有着强大的生态系统。

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

展望未来..

一个在2017年密切关注的项目: ,

一个构建在Vue.JS之上的移动跨平台UI框架。

6、编译器

我们在这里谈论生成任何语言(或JavaScript的超集)的JavaScript的编译器(或“transpilers”)。

他们将代码转换为浏览器(或node.js)可以执行的“标准JavaScript”代码。

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

最流行的转译器是 ,它带给web开发者来自java和c#的静态类型。

事实上, 使用TypeScript 增加了更多的特性。
这儿有关于在js中使用类型的利弊,阅读这两篇文章,提出你自己的观点。

Babel与Webpack一起,几乎成为编译ES5代码和标准JavaScript中的库(如React(JSX))所使用的模板的标准。

最初创建的编译ES6,它成为一个更通用的工具,可以完成任何代码转换,感谢这个插件系统。

不是一个编译器,它只是一个静态类型检测工具,用来“标注”JavaScript代码。

在代码中使用Flow只是增加对于意料之中类型的注释(阅读这里更多关于使用Flow写模块)

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

这意味深长。

和其精简的语法,受 Python 和Ruby 语法启发,但它在2016年不太流行,

大量的开发者通过使用Babel从 CoffeeScript 转移到ES6。

7、构建工具

在 2016年,我们很难想象一个没有任何构建过程的Web应用。

通常需要一个构建过程来编译模板和优化资源,以便在生产环境中运行Web应用程序。

是被用来构建单页应用的主要工具,在React生态系统中运行,

新发布的版本2带有一些有前途的增强功能(查看本文介绍 )

Gulp是一个通用的任务运行器,可以用来处理任何形式的自动化过程包括文件系统,因此它不是Webpack或Browserify的直接竞争者。

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

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

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

基本上,它需要几个node.js包作为输入,并为浏览器生成一个单一的“构建”文件作为输出。

但是,似乎像Webpack一样的工具,更适合Web应用工作流。

展望未来...

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

它使用ES6模块及一个称为”Tree shaking “功能创建bundle,

只包括您在代码中使用到的功能,而非传输整个库。


8测试框架

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

, 由多产的 创建的强调性能(并行测试)和ES6。

AVA的语法接近标准测试框架,如 和 。

,另一个 Facebook 项目,

在过去几周里有很多吸引力。 在React社区众所周知,越来越多的人转向Jest(例如阅读 ),

它可能成为2017年最流行的测试框架。

Jest内置了良好的mocking 功能,而其他测试框架通常依赖于[Sinon.JS]()这样的库。


9、IDE

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

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

它提供了关于 和 node.js的良好整合.

一些开发人员提到开发速度的提升,感谢IntelliSense功能的改进(整合了高亮和自动完成).

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

, 由Github推出,

利用 创建(类似于其它的桌面应用,包括桌面客户端),并不亚于Visual Stdio Code。

关于 Atom 有趣的事实是: 它主要的语言是 CoffeeScript!


10、静态网站生成器

静态网站生成器是生成一系列.html, .css 和 JavaScript文件的工具,

您可以在任何简单的web服务器(Apache或NGNX)上部署,而不用大惊小怪,或者设置数据库或任何web框架。
正如比尔盖茨所说:

Build sites like it's 1995

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

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

在2016年,利用node.js构建的最流行的SSG就是Hexo,它是个一站式SSG,

接近于像Wordpress这样的CMS系统,
他有很多功能,包括国际化插件。

新出的Gatsby是一个非常有趣的解决方案,它因为使用React生态系统来生成静态html文件,从竞争对手脱颖而出。

事实上,您可以组合React组件,Markdown文件和服务器端渲染,这使它非常强大。

结论

尽管 JavaScript 疲劳™ 和 戏剧事件 (还记得 ),

随着如 和 项目的崛起,
以及新项目如 或.
对社区而言,2016是一个伟大的年份,
我们一直在谈论2016年Github上的项目,但是更重要的是是开发者的满意度。
那么,如果你想了解更多,请看Sacha Greif的JavaScript现状调查,
我们已经收集了超过9,000份答卷。

是时候考虑2017年的后起之秀在哪里了?

以下是我精选的10个项目,在2016年我喜欢这些项目和观点,2017年将保持增长:

  • vue.js势头将不会停止:

  • Electron

  • Create React App

  • React Native

  • Gatsby (用于构建这个页面!)

  • Yarn:一种快速、可靠和安全的依赖包,可以代替NPM、可在查阅node.js包管理工具的状态

  • “渐进式web应用”概念

  • Node.js的“微服务”解决方案,能够更好实现部署,例如Now

  • Node.js的升级:最新一版对ES6语法有很好的支持

  • 压轴的是graphql:我的朋友告诉我,可能要搞个大新闻!

你可能感兴趣的文章
iOS开发中的错误整理,(百思项目,指示器位置)设置控件尺寸和点坐标,先设置尺寸,再设置点坐标...
查看>>
(C/C++学习)7.数组及其访问方式
查看>>
LeetCode——Intersection of Two Linked Lists
查看>>
对拍——我目前可以找到的最简写法
查看>>
js之广告弹出自动关闭
查看>>
axios请求requestBody和formData
查看>>
PSQL_标准API和Interface基本的用法和比较(概念)
查看>>
网站目录
查看>>
APUE-文件和目录(七)符号链接
查看>>
CSS 简介
查看>>
System Verilog基础(二)
查看>>
2018/11/26 Samba服务器配置
查看>>
2018/12/08 PAT刷题 L1-034 点赞
查看>>
如何改变TextBox.PassWordChar的值 转
查看>>
css的工作原理
查看>>
【pip】的安装
查看>>
内存泄漏及其检测工具
查看>>
QT Model based vs Item based
查看>>
[Leetcode]669 Trim a Binary Search Tree
查看>>
Linux C Programing - Arguments(2)
查看>>