Promise 和 async & await

Promise 和 async & await

异步是为了优化需要长时间操作。异步编程技术使你的程序可以在执行一个可能长期运行的任务的同时继续对其他事件做出反应而不必等待任务完成。

回调函数

回调函数表明异步操作已经完成。作为曾经 JavaScript 中实现异步函数的主要方式。主要存在以下几个不足:

  • 错误处理困难:当任务长期运行,调用回调函数的代码一般不会和开始任务中的同步代码位于同一事件循环周期

  • 连续执行步骤非常棘手:也就是回调地狱的问题

  • 执行并行任务时也有一定复杂度

当异步请求相互依赖时使用回调的方式会导致深度嵌套,会导致经典的回调地狱:

Read more
迭代器(Iterators)和生成器(Generator)

迭代器(Iterators)和生成器(Generator)

迭代器

迭代器(iterator),使用户可在容器对象(container,例如链表数组)上遍历的对象

迭代器模式

迭代器模式可以让开发者无需了解如何迭代就可以实现迭代操作。Python,C#,Java对该模式都有完备的支持,JavaScript在ECMAScript 6 也将其引入到语言核心中来。

Read more
软技能:十步学习法

软技能:十步学习法

最近看了一本蛮有意思的书《软技能: 代码之外的生存指南》,这本书从: 职业发展, 自我营销,学习,生产力,理财,健身,精神世界这7个维度来诠释作为一个软件开发人应该如何走向自己向往的生活。其中学习的主题,讲述了技术人员如何在当下技术日新月异的时代下更加有富有成效的快速学习,我觉得还挺适合我们技术开发人员的,总体来说就是在掌握适当基础(最小原则)之上如何利用实践来促进自己知识的消化吸收,再通过实践来加深自己对理论的理解。下面是我整理的《十步学习法》笔记,供大家参考:

Read more
多账户Github SSH Key 管理

多账户Github SSH Key 管理

前言

同一台PC中使用多个SSH Key是一个非常常见的场景,比如说有多个GitHub账户,或者说有需要连接多个不同的Git服务器,比如说Github是存放开源的项目的仓库,而私人的项目可能是放在Bitbucket上的,或者说除了这些还需要连接公司的Git服务器等。这时候我们需要对SSH Key 进行配置才能正确的使我们在多个Git服务器中来去自如。

Read more