代码 > koa,yield与co库
2016-11-16
目前我最欣赏的程序员是express的作者TJ。
最近准备用node js重写这个网站,发现TJ的新作koa似乎已经到了很使用的阶段,花了两小时研究了下。
刚开始看得是一头雾水。为什么koa demo 里的yield的用法和mdn的说法完全不同,为什么yeild这么特殊,这玩意到底什么鬼。
慢慢的理清了思路,找到了对的思路,才明白了过来。
不得不说,直介绍是什么,不说干什么用的文章到底有什么用……
首先,ES 6里引入了generator的概念.
通过代星号的函数可以常见生成器(特殊类)。
- 生成器上,有一段业务代码,
- 可以通过生成器生成函数(实例化类),调用可以执行生成器中的业务代码。
- 生成器中的代码依然不能执行异步代码,遇到 yield会中断
- 本身这一切不怎么神奇,但TJ大神写了个神奇的库叫CO。CO库可以直接调用生成器,执行业务代码。业务代码的yield只要跟的参数是promise或者thunk包装的异步函数,就能在异步结束后在异步代码中继续执行下面的代码,甚至可以有返回值。
- 这样,配合特殊格式的异步函数,把yield在结构上当成了类似call方法的同步函数。整个业务代码可以和同步代码一样有极强的可读性。异步代码尽可能简化,可以用其他库打包。
- 最后,代码看着像函数化的同步代码,用着也像。
koa其实就是个基于CO重构的express。
其实每个做过Node js的程序员,或多或少的都会写过一些类似的流程控制代码。当然,无疑TJ是写的最好的,考虑的最多,用的最广泛。
我真是爱死了这个设计出生的程序员了。
关于co可以参考 http://web.jobbole.com/85901/
工地 > 服务器恢复上线
2016-11-15
lets encrypt 自动签发证书Ok.
nginx,mysql,phpmyadmin,网站全部docker化Ok.
折腾了不短时间,主要很多docker image 文档太少了
风景 > 海南游记
2016-10-20
第一次带娃远游,为了照顾娃不要飞太长时间,去了不怎么感冒的海南。
作为我目前最大的兴趣爱好,去之前,入了FE 16-35 f4,做了简单的拍摄计划,可惜天不如人愿,去的时候夹在两次台风之间。计划完全被打乱。
原计划是第一天去蜈支州岛,晚上乘着岛上无人看看能否撸个星空,白天拍个日出,剩下的几天去亚龙湾或者椰梦长廊拍拍日落和娃。
结果呢,天天下雨,只有一天放晴,上不了岛,出不了游。好在乘两个不下雨的日出在亚龙湾拍了下。但天气不佳,景色有限,水平又菜,没啥好片。
总的来说,感觉蜈支州岛没上颇为可惜,亚龙湾中规中据,比wakiki都差了不少,三亚湾的椰梦长廊实在糟心,不如不去。倒是日落十分去的天涯海角比预期的要好。毕竟靠海朝西有礁石,拍拍旅游照不错。
短短的4天3夜,连夜飞回了上海。唯一留恋的,应该是每天不断的椰青了。
代码 > 开始使用visual studio code
2016-09-06
这两天偶然用了下vs code。发现个方面的感觉都非常棒。体验很好。对比了一下作netbeans和atom发现不论速度/外观上都是目前最优秀的。决定花一段时间习惯下这个编辑器。