【第1162期】2018 要学习的优秀 JavaScript 库与知识

前言

关于2017年回顾的文章,也曾分享过几篇了,当看到这篇的时候想去找找看在2017年初的时候有没分享过2017值得学习的库,可惜翻看了只有讲到前端工具的趋势。那2018年有哪些可以学的呢?今日早读文章由@gy134340翻译分享。

正文从这开始~

去年,我写了一篇关于 2017 需要学习的技术 的文章。今年有一些惊喜。

我们致力于回答 “在你投资学习的时候,哪些最高效?” 的问题


JavaScript 有最多的包,取得压倒性胜利。

首先,软件吞噬了世界,web 吞噬了软件,同时 JavaScript 吞噬了 web。而在 2018 年,React 正在吞噬 JavaScript。

2018: React 之年


React 在 2017 年赢得了人气之战。

从 Google 趋势可以看出,还是有很多开发者基于 Angular 开发:

但是 React 持续的赢得用户满意度。它迅速增长并远远抛开 Angular (以及其他) 框架。

Vue.js 呢? 我听说它很火

每个人都喜欢口头上谈及相关的替代选项,比如 Vue.js。这是我去年说的:

Vue.js 有很多的 GitHub star 和下载量。如果情况继续发展的话,它在 2017 年将会表现的很好,但我不认为它会在下一年里替换 Angular 或者 React。所以在你学习 React 或者 Angular 之后再学习它吧。

Vue.js 在 2017 年表现出色,赢得了很多新闻头条和人们的兴趣。像我所预测的那样,它没有赶上 React, 同时我也肯定的说在 2018 年也不会发生。即便如此,它可能在 2018 年超过 Angular:

Vue.js 下载量/月

如你所见, Vue.js 正在赶上 Angular 的下载量:


angular/core 下载量/月

但是 React 有很强的领先趋势和与之相同的增长率:

React 下载量/月

Vue.js 比 React 增长的更快,那与 2017 年 React 和 Angular 的对比有什么不同呢?

在 2016 年末,JavaScript 世界准备好迎接新的框架了。Angular 的用户非常的不满,React 的用户则与之相反,许多人想学习 React,很少人愿意学习 Angular。在 2017 年年尾,Angular 2 之后的用户满意度还是不到一半,只有 49%。

React 和 Vue.js 则是完全不同的情节React 的用户满意度更高 (93% 对比 90%)。2017 年早期,从 React 转向 Vue 的最大的刺激是 React 的开源许可证的问题。Facebook 听取了用户的建议后来更改了协议。

在这一阶段,我看不到任何迹象可以让市场从 React 切换到其他的。Vue.js 从 React 手中夺取用户要比从 jQuery 和 Angular 那里难的多。

从 Angular 和 jQuery 那里夺取用户有很多空间,但是从 React 那里获取用户来获得持续的增长将会很快碰到瓶颈。

我预测 Vue.js 这种快速的增长只会持续一到两年,它会在顶部与 React 进行激烈的竞争,然后会停在第二位,除非有大的改变可以打破这个平衡。

职位


jQuery 凉了。

在职位列表中, React 完全取代了 jQuery 之前的位置——这是十年来第一个超越 jQuery 的库¹。我们看到一个时代的终结。

React 取代了十年来 jQuery 第一的位置(来源: Indeed.com)


对比一下去年的图:

jQuery 2016 年是这样的

有趣的点在于其他库的增长值大于 jQuery 滑落的值。总的来说,库相关的职位在去年增长了 10k 或更多。

在职位的增加下,我们还看到平均工资的增长$110k 对比 2016 年的 $93k。通货膨胀同期保持在2%以下,这也不会过多的影响这一爆炸式增长。

显然,在 2018 还有是卖方市场。

1. 方法: 职位的搜索在 Indeed.com 完成。为了增强数据的可靠性,我成对的搜索 “软件” 相关的关键字扩大相关性,然后乘以大约 1.5 (粗糙的区分那些编程工作列表使用 “软件” 关键字和不使用的)。所有相关的都按日期排序记录相关性,其结果不一定 100% 准确,但是已经足够用来在此文中表示粗略的度。

框架推荐

在看了今年的数据之后,我强烈用最广泛使用的 React 来开发应用,包括移动端应用(PWAs, React Native),web 应用,大部分的生产力工具,以及桌面媒体应用(Electron)。

某些明显的情况下,其他的可能更为适用好:轻量的营销页面(完全不需要框架),3D 游戏,AR/VR。对于 3D 的内容,看看 Unity, Unreal, 或者 PlayCanvas。即便如此,React 也可以作为 3D 内容的 UI 库。

我强烈不建议转向其他可以备选的前端框架。这并不是说它们不好,只是它们不是市场上 React 有力的竞争者。记住,这个列表是关于投资回报率,而不是哪一个技术是最棒的。

为什么对 React 这么感兴趣?


浏览 React 的职位列表,我注意到很多本不应该属于前端工作的有趣的趋势:

  • React Native (看起来, 这些需求总量比 Vue.js 的还多)

  • React IoT

  • React AR/VR (Oculus Rift 主导需求市场)

  • React 对那些你从来没听说的模糊计算


React 已经脱离了它 web 的土壤

灵活性是 React 最大的卖点。不像其他框架,采用 React 并不意味着关注它的数据模型,甚至浏览器和 DOM。事实上,我发现不少 React 的工作需求完全没有提到 JavaScript。

React 提供了基于其标准的丰富的充满活力的生态系统,这些从 jQuery 统治 web 以来从来没有看到过。

问题不再是“哪一个框架?”
问题是 “什么技术可以更好的搭配 React?”

没有任何事物可以在 2018 改变 React(也许 2019 也是)。你很安全。JavaScript 疲劳渐渐稳定了。我们有了一个伟大的构造应用的框架,同时有着相关的优秀的生态系统。

你应该学习哪些话题?


像去年一样,你不能错误的关注一些要点,但是你应该更加重视 React 应用的函数式编程。

React 有两点优秀之处:

  • 确定性的视图渲染

  • 将视图层从 DOM 操作中抽象出来

确定性通过使用纯函数构建应用来实现,这本质上也是函数式编程的定义。

考虑这一点, 这是一些你需要学习的内容:

  • 基础的 ES6 语法

  • 类的语法和它的各种陷阱 — 可以对 React 组件使用类,但是应该避免继承你自己的类,避免 instanceof, 避免类的使用者使用 new关键字。

  • 函数式编程 和 软件组成

  • Currying

  • 闭包

  • 纯函数

  • Promises

  • Generators和异步函数

  • TDD

  • RAIL 性能模型

  • Progressive Web Applications (PWAs): 看一下 “Native Apps are Doomed”  “Why Native Apps Really Are Doomed”

  • GraphQL 在 2017 年成熟了很多,非常快速的取代 REST API, Apollo 采用了内置的离线客户端缓存架构让 Apollo 和 GraphQL 成为 2018 Redux 的一个真正的备选方案(或补充)。


库和工具


这里是一些我发现的最有用的库和工具:

  • React

  • Redux

  • Redux-Saga 管理异步 IO 分离副作用

  • Next.js — Node 和 Express 的服务端渲染, 自动的分离打包, styled-jsx

  • Material UI

  • Storybook

  • Cheerio 用来做 React 组件的单元测试(相比 Enzyme 我更喜欢它)

  • Lodash (我更倾向于 lodash/fp)。只导入需要的包避免增大打包体积。

  • Babel: 编译 ES6 使它在更老的浏览器上运行

  • Webpack: 最流行 JavaScript 打包工具,向 kit/boilerplate找一些简单的样例来快速的开始。

  • ESLint: 提早检测语法错误和样式问题,在 code review 和测试驱动开发之外最好的可以减少你代码里错误的工具。

  • Ramda— 主要是为了 lenses 和 transducers.

  • Node & Express

  • RxJS: 让 JavaScript 可观察,最近我一直在使用 transducers,记着使用 patch imports 来减小包体积。

TypeScript2017 年表现不错, 但我认为它增加应用的复杂度的弊端大于它的帮助,它的主要缺点是过分依赖注释而不是接口,同时对高阶函数的类型有无法形容的扭曲,我做了一整天的试用,这些情况仍然存在:“静态类型之秘”  “你也许不需要 JavaScript”。Flow 跟 TypeScript 有相同的问题同时开发者工具也不如 TypeScript 的棒。

2018 技术展望


所有的这些都是 2018 研究与开发领域真实的工作:

  • Progressive Web Apps (PWAs)

  • 区块链与金融科技

  • 医疗科技

  • AR/VR — Hololens, Meta, 和 ODG 现在可以出货了。 ODG R-9 本来预计 2017 发售但是很有可能放在 2018。MagicLeap 承诺 2018 发布。AR 将会比过去手机更加改变人们的体验。

  • 3D 打印

  • AI

  • 无人驾驶

量子计算也将改变世界,但是也许在 2019 或者更晚改变才会开始。目前有在网上工作的量子计算机,但是他们还做的不是很多。现在对于大多数开发者来说开始试验性生产还太早。微软最近发布了它的量子计算编程语言 Q#,IBM  Google 也继续大量投资自己的量子云计算市场。

如果你想学习量子计算,你也许需要学习 线性代数,同时也有对于量子计算也有一些基于 lambda 演算 的函数式探索。

很有可能,像我们看到的 AI, 云 API 将会被开发出来让有不同数学背景的人来更好的利用好量子计算的能力。

2019年的时候,我们在回过头来看看这篇的内容,会不会有惊讶呢?

最后,为你推荐

【第1154期】2017 年 JavaScript 发展状况回顾

【第1152期】2017 JavaScript 调查报告概述

关于本文
译者:@gy134340
译文:https://github.com/xitu/gold-miner/blob/master/TODO/top-javascript-libraries-tech-to-learn-in-2018.md(掘金翻译)
原文:https://medium.com/javascript-scene/top-javascript-libraries-tech-to-learn-in-2018-c38028e028e6

作者:@Eric Elliott
校对者:@moods445, @vuuihc


你心目中2018年最值得学习的技术是什么呢?

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购源代码。
应用背景为变电站电力巡检,基于YOLO v4算法模型对常见电力巡检目标进行检测,并充分利用Ascend310提供的DVPP等硬件支持能力来完成流媒体的传输、处理等任务,并对系统性能做出一定的优化。.zip深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 、资源5来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 、资源5来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。、 5资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值