【锁定直播】字节、华为云、阿里云等技术专家讨论如何将大模型接入 AIOps 解决实际问题,戳>>> 了解详情
写点什么

2016 年 JavaScript 领域中最受欢迎的“明星”们

  • 2017-02-06
  • 本文字数:5495 字

    阅读完需:约 18 分钟

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

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

InfoQ翻译并整理这篇博文,以飨 JavaScript 的开发者。


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

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

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

一. 2016 年最受欢迎的项目

概述

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

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

而 2016 年的王者是……

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

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

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

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

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

二. 前端框架

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

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

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

React 及其竞争者

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

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

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

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

Angular 1 和 2

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

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

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

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

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

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

三. 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 的启发(因此名为 Sails!)。它已经存在了很长时间。它可以与任何类型的数据库(SQL 或无 SQL)良好工作。

Loopback

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

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

四. React Boilerplates

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

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

Create React App

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

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

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

React boilerplate

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

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

Next.js

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

五. Mobile

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

React Native

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

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

Ionic

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

NativeScript

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

前瞻

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

六. Compilers

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

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

TypeScript

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

Babel

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

Flow

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

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

CoffeeScript

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

七. Build Tools

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

Webpack

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

Gulp

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

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

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

Browserify

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

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

前瞻

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

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

八. Testing Frameworks

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

AVA

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

Jest

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

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

九. IDE

关于 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!

十. Static Site Generators

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

就像 1995 年那样建立网站。

静态网站具备快速性、健壮性和易维护性。

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

Hexo

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

Gatsby

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

# 总结

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

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


以下是我的年度十大选择,代表了在 2016 年我所喜欢的项目和想法,将在 2017 年持续增长:


感谢韩婷对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-02-06 18:009210
用户头像

发布了 368 篇内容, 共 170.1 次阅读, 收获喜欢 939 次。

关注

评论

发布
暂无评论
发现更多内容

华为云助力龙岗区人才培养生态建设,2023年龙岗产业创新人才双选会圆满落幕

科技说

uniapp自定义富文本编辑器

格斗家不爱在外太空沉思

uni-app 三周年连更

一文读懂线程池的实现原理

老周聊架构

三周年连更

HTTP方法大全

阿泽🧸

HTTP 三周年连更

Spider实战系列-一次真实接单经历让我抓取了某东的数据

浅辄

爬虫 三周年连更

Go语言并发编程的核心 —— GMP调度模型

Jack

NDP常用报文格式

穿过生命散发芬芳

NDP 三周年连更

简单高效的Shell数组操作技巧与技术

小毛驴的烂笔头

linux命令 linux数组

华为云助力龙岗产业创新人才培养:2023大学生就业创业嘉年华活动圆满落幕

科技说

Last Week in Milvus

Zilliz

非结构化数据 开源社区 Milvus Zilliz 向量数据库

Paimon 专题上线|从 0 到 1 入门新一代流式数据湖存储

Apache Flink

大数据 flink 实时计算

Vue3 如何编写一个插件

程序员海军

Vue3 三周年连更

基于Laravel的模块化开发框架,让Web应用程序开发更快更简单

ModStart

别再只会使用简单的ping命令了,Linux中这些高级ping命令可以提高工作效率!

wljslmz

三周年连更

华为云助力龙岗产业创新人才双选会,为深圳市打造数字经济人才高地

科技说

Socket学习网络基础

攻城狮Wayne

android TCP通信 三周年连更

华为云等保解决方案为您提供最专业的团队,助您轻松过等保

IT科技苏辞

打包python程序 | python小知识

AIWeker

Python python小知识 三周年连更

为什么说Flutter无法成为移动应用开发的“顶流明星”?

FinFish

flutter 前端框架 跨端框架

华为云网站安全解决方案,助力游戏行业平台安全

科技怪授

一文掌握使用 Go 标准库 sort 对切片进行排序

陈明勇

Go golang 排序 三周年连更 sort

Linux命令之find的高级用法

小毛驴的烂笔头

Linux find

超级App与新零售:零售品牌如何利用小程序技术掌握未来商业机会?

FinFish

新零售 超级app 小程序技术 小程序容器技术

《致“抄我”的朋友:你已经被我列入白名单!》

程序员晚枫

开源

华为云网站安全解决方案加固企业网站安全防护

科技怪授

更好地解决企业网络安全防护难题,华为云值得信赖

科技怪授

HTTP 与 RPC 接口区别

Apifox

网络协议 RPC HTTP RPC调用

美光遭遇审查,存储市场成了“香饽饽”?

脑极体

美光

华为云数据灾备,让企业上云更安心

科技怪授

前端三板斧头 --- 编程范式

知心宝贝

JavaScript 学习 编程 前端 三周年连更

华为云等保合规方案,守护企业网络安全线

IT科技苏辞

2016年JavaScript领域中最受欢迎的“明星”们_JavaScript_刘志勇_InfoQ精选文章