异步Javascript研究 | Lynda教程 中文字幕

异步Javascript研究 | Lynda教程 中文字幕

Rethinking Asynchronous JavaScript

课程ID: 604266

时长: 6.4小时

所属类别:Javascript

熟悉JavaScript语言和新的ES6功能的最新发展

本课程提供了与凯尔辛普森一起学习的机会,让您可以获得新的编程技巧

学习使用回调工作,处理控制反转,并使用thunk

了解如何利用承诺 - 包括原生承诺和承诺API - 以及如何使用抽象,序列和门

了解如何使用generator,observables,CSP等

注意:本课程由Frontend Masters创建

它最初发布于2016年3月29日

我们很高兴在我们的图书馆举办这一培训

主题包括:

并行和异步代码

使用回调

使用thunk

探索承诺流量控制

抽象,序列和门

发电机

消息

可观察物,事件和序列

CSP

阻止频道

(字符串和长笛电子音乐) - 作为一个快速介绍任何人可能加入我们的视频, 或有人以前没有听说过, 只是一个简单的介绍。

我的名字是凯利·辛普森(Kyle Simpson), 被称为Getify, 我可以在所有主要的地方找到Getify, 如Twitter和GitHub, Gmail以及所有其他地方。

我列出了这些东西, 因为我鼓励你伸出援手, 提出反馈意见或提问, 如果你要回头看看这些东西, 特别是在这个研讨会的过程中我们将要经历的东西, 还有很多特别是在我们进一步深入的时候。

演习变得极具挑战性。

有些练习花了我几个星期的时间, 然后我期待你在20分钟内做到这一点, 所以他们是有目的的极具挑战性的。

只是试图推动你对异步模式的理解。

所以如果您对此有任何疑问, 或者您正在努力解决问题, 请随时与我们联系。

我很乐意帮助你。

刚刚真的很快, 我已经做了几个开源项目, LABjs, 脚本加载器, 抓取是一个模板引擎, 异步, 我们将花费大量时间谈论异步实际, 但不是因为我试图卖给你在该库中, 仅仅因为它旨在帮助使异步编程概念在大脑中更容易理解和管理, 它旨在使其更易于教学。

所以在整个研讨会期间, 您将会遇到异议。

我是MakerSquare课程的主管, 大约在过去的三四个月。

MakerSquare是一名开发人员工程师培训学校。

我们在奥斯汀, 旧金山和洛杉矶设有校园, 我们也将扩大。

我们把你从初级状态带到中级状态, 与其他学校略有不同, 可能会说, 我们从没有任何事情开始, 让你进入初级阶段。我们更多的是更高端的, 我们喜欢像我们这些开发学校的麻省理工学院一样思考自己。

所以你从更高的层次开始, 更多的是你需要的, 但是我们也带你进一步。

这是一个完整的JavaScript JavaScript学校, 所以我们教授所有的前端框架, 如角度和反应, 以及所有后端的东西, 如Mongo, Node和Express, 以及类似的东西。

如果您对技术教育有任何疑问或想法, 或者您认识有兴趣的人或有一些疑问, 请与我们联系。

我更愿意和你聊天。

我已经写了一系列关于JavaScript的书, 叫做你不知道JS。

今天我们将要讨论的很多东西都是以某些方式, 形状或形式在这些书中进行的, 特别是Async和性能书以及ES6书。

您应该能够在这些书中找到相当多的这些主题的报道。

整个六本书系列, 价值1100页, 可在GitHub上免费上网。

这个YouDontKnowJS.com将重定向到。

您也可以购买它们。

他们已经通过O'Reilly进行了编辑和发布, 所以如果您对该内容感到满意, 您可以购买它们。

今天我们将讨论异步模式。

现在, 我想解释一下蝙蝠, 我对这个方法的看法, 就像我对我所教导的其他东西的方法一样, 首先是在解释如何使用某些东西之前关注概念。

这与我的一些同行们有所不同, 他们首先向你介绍API的一些东西, 然后也许稍后你可能会接受它背后的一些概念。

我认为, 在实际上太沉浸在实际的事情中之前, 您明白为什么要以某种方式做某事, 这更为有效。

所以, 例如, 你们中的一些听起来至少对承诺有些熟悉, 但是我不确定每个人都有一个非常好的概念基础, 在一个承诺真的是什么, 为什么一个承诺是有用的。

因为我看到很多争论在开源社区的承诺, 他们似乎非常关注API对承诺的争论, 并且错失了为什么他们甚至存在的更深层次。

所以, 对于我们今天要经历的每一个话题, 我们的目标就是首先建立一个概念性的理解, 然后是我们为什么做这件事的做法, 一旦我们知道为什么我们这样做。

所以我们即将开始, 甚至在我们谈到一些代码之前, 我们将开始理解经常混合的一个非常重要的区别。

我们将要看并行性与异步性的概念。

这真的是和并发的想法有关, 所以我们实际上会研究一下什么是并发的意思, 特别是一个JavaScript开发者的意义。

因为这是我们所有其他事情的动机。

那么我们将把注意力转向回调, 这是异步编程所有基本单元的最基础的前提。

我们真正要看到的是, 回调能够表达我们需要的一切, 但却有一些非常显着的缺陷。

两个主要的缺点, 其实我会用来定义回调地狱的概念。

回调地狱被扔在一个可怕的很多, 大多数人, 当我说这个术语, 他们想到的是, 它与缩进有关, 嵌套, 这样的事情。

我要告诉你的是, 回调地狱实际上几乎与缩进和嵌套无关。

有一些更深层次, 更重要的是了解回调地狱。

所以我们来看看回调, 看看为什么, 他们如何工作, 我们会和他们一起练习, 只是为了理解这种第一人称的痛苦的经验。

我相信你们都已经有了。

但是接下来我们要看看这些问题是什么, 给他们一个名字, 给回调地址一个名字的问题, 我们来看看。

这将是我们为什么要尝试用这些更高阶模式来解决这些问题的动机。

回调的另一个变化是我们要看的, 这是有趣的, 它没有得到很多的关注, 你们中许多人可能以前没有听过, 但是thunk。

Thunks是我最近刚刚出现的东西, 最近我是说在过去一两年里, 发现了这种模式, 并意识到, 哇, 我真的希望几年前能够表达这种模式。

因为实际上, 这是了解什么承诺是一个很好的前兆。

所以我们来看看thunk, 我们来看看为什么他们是这个工具的一部分。

它们是你在工具集中应该有的小工具之一。

了解一个thunk真正是什么以及它有用的概念性理解, 这将使我们陷入承诺。

换句话说, thunk是一种像没有奇特的API的承诺。

所以一旦我们得到了在thunk中的概念基础, 我们会明白为什么承诺是有用的。

我们将看看API如何使用承诺。

我们会看看他们的一些模式。

一路上, 这些模式中的每一个, 我们将要重新审视一项运动, 一次又一次地进行完全相同的运动。

而您将使用这些模式中的每一种, 从回调一直重新实现该练习的解决方案。

目标是让您充分了解, 您不用担心问题需求, 您将充分了解每种模式的优缺点。

这就是我们如何去做的。

所以我们会看承诺。

接下来我们来看一下发电机和协议。

当我们看到承诺和发电机时, 我们实际上将为回调地狱的重大问题建立两个坚实的解决方案。

这代表基线。

如果你准备好把我调出来, 我已经压倒了你, 或者你感到无聊, 或者你得到这个部分, 那么这个点。

你必须通过承诺和发电机。

那就是异步编程能力的新基础, 了解什么是承诺, 什么是发生器, 以及为什么需要混合在一起来解决回调的问题。

这就是能力的新标准。

所以真的, 如果你没有得到任何其他的工作, 我想确保每个人都到达这一点。

所以我们会花很多时间来确保我们达到目标。

但这不是全部。

因为异步编程更多的是这些模式不一定很好。

有更多的变化。

我所做的一切是, 我从来没有一次, 我在17年的JavaScript中写了很多代码。

我从来没有写过一个完整的程序使用完全相同的抽象无处不在。

没有一个银子弹。

任何时候有人开始告诉我像x这样的新东西, 我的BS雷达就消失了。

我好像不可能没有。

事实上, 这几乎肯定不是。

没有一个银弹替代其他的东西。

所以今天没有教我的东西, 将会替代我们所说的一切。

相反, 你应该考虑这些事情, 而不是ors, 你应该考虑它们。

这是添加剂。

这些是额外的工具, 额外的模式。

你可以发展本能, 为什么一种模式更适合于一组特定的问题。

我的程序尝试在必要时有效地使用这些不同的模式。

即使像回声和十字架这样的东西也有他们的地位。

承诺有自己的位置, 发电机有自己的位置。

另外, 当我们开始处理事件流时, 我们会发现, 当我们开始处理面向事件的编程, 我称之为事件反应的或反应的序列时, 我们将发现承诺实际上并没有给我们一个非常好的解决方案。

这也是可观察的名字。

所以如果你读过任何东西, 最近有一个嗡嗡声。

有关于可观察性概念的相当多的信息。

有一个Microsoft的库称为RxJS, 这是可观察模式最常见的实现之一。

所以我会告诉你什么样的模式, 为什么它是有用的。

我们将把这个回溯和实践与异常图书馆中的可观察者的表达联系起来, 因为在没有用数百种方法学习一个巨大的图书馆的情况下, 我们可以更容易地玩。

所以一个非常小的一部分, 我们将以异常的方式玩, 我称之为反应序列, 基本上是一样的。

所以这是一个更高的订单模式, 这将有助于我们将所有我们共同学习的其他东西放在一起, 并以有趣的方式解决事件导向的编程, 面向事件的异步编程。

最后, 我们将会看到的最后一个模式, 很高级别的模式, 最近还没有得到很多的关注, 但是它被称为CSP。

它代表通信顺序过程。

这不是一个新概念, 实际上是在60年代初发明的。

和...

它是由一些非常聪明的人开发和思考的, 比我更聪明。

所以没有什么新的, 我在这里介绍, 没有新的信息, 这几十年来还没有被讨论过。

但是, 几乎感觉CSP正在重新发现的尖端, 特别是因为最近我们已经看到一些更流行的, 更主流的类型语言, 采用这种并发模型。

即Go语言使用CSP模型并发, 以及Clojure和ClojureScript, ClojureScript是将Clojure引入浏览器中的JavaScript世界的桥梁。

所以越来越多的人开始进入Go编程语言世界, 进入Clojure和ClojureScript。

他们发现CSP是管理并发的真正强大的模式。

我听到人们在可观察的一面, 例如, 告诉我可观察的是那个银子弹。

你可以用可观察的模型来建模所有的东西

可能的。

有一些地方真的很好, 有些地方不是很好。

然后我听说有人说, 你甚至不需要承诺, 因为你可以用CSP渠道做所有事情。好的, 但是有一些地方是有用的, 而不是它的地方。

所以这不是一个全部或者全部的事情, 但CSP是一个从根本上没有被发现或相当不了解的一种模式。

但我相信它代表下一波的下一波。

如果大波是可观察的, 如果要洗我们, 那么它就是CSP。

所以我希望我们知道这些事情, 并了解所有这些工具如何组合在一起。

到最后, 我们将通过一些相当具有挑战性的练习, 试图将我们的大脑思考出来, 超越一个简单的回调, 好吗?

这就是我们在这个研讨会上所去的地方。

如果事情看起来太简单了, 我答应你, 到底有没有足够的挖掘你的牙齿。


本课程视频字幕免费下载地址: 异步Javascript研究

猜你喜欢

转载自blog.csdn.net/lyndacn/article/details/80872667