Rock with async/await
本篇文章是作为上一篇的续集,考虑到第一篇的篇幅,还有更重要的一点就是上一篇讲的内容已经可以直接应用在最新版本的Node.js和一些高级浏览器(Chrome,FF)中,具体兼容性可参考:https://kangax.github.io/compat-table/es6/。
而这一篇讲的内容,是ECMAScript 2016(ES7)的async/await特性,目前的兼容性可参考:http://kangax.github.io/compat-table/esnext/#test-async_functions,虽然现在来看还不是非常乐观,但是我们可以通过第三方的代码转换工具(…
新的开发同事入职,总是要去帮他们重新搭建开发环境,刚开始一两个倒觉得还好,花半天时间就可以搞定;但随着新加入人数越来越多,而且还经常会碰到同事电脑上的某个服务没启动,导致项目没法跑起来,又要帮忙调试,这些无脑的体力活也变得越来越冗长乏味。消除重复,是程序猿的天生职责,工作的重复也不例外。
于是我找到了Vagrant,其实早在2014年就听说,只是当时团队还很小,而且每个人都能驾驭自己的开发环境,所以没多留意,只是知道有这么个东西。现在回想,当时真是目光短浅,早用起来就不会发上面那段牢骚了。下面进入正题。
什么是Vagrant?
Vagrant为开发环境而生,是用于创建并配置轻量的、可重现的、可移植的开发环境。
为什么要用Vagrant?
据我了解,目前团队合作的开发环境大致分为三种:
第一种:每个人的电脑都有一套独立配置的开发环境。这种方式如果在项目中需要依赖一个新的服务,那所有人的电脑都要挨个装个遍,虽然这个情况不会经常出现,…
本文通过一个简单的需求:读取文件并备份到指定目录(详见第一段代码的注释),以不同的js代码实现,来演示代码是如何变优雅的。对比才能分清好坏,想知道什么是优雅的代码,先看看糟糕的代码。
不优雅的代码是什么样的?
1、 回调地狱
/**
* 读取当前目录的package.json,并将其备份到backup目录
*
* 1. 读取当前目录的package.json
* 2. 检查backup目录是否存在,如果不存在就创建backup目录
* 3. 将文件内容写到备份文件
*/
fs.readFile('./package.json', function(err, data) {
if (err) {
console.error(err)…