共计 2 篇文章

nodejs的流stream

buffer和stream 说道stream就不能不涉及到buffer,提到这2个东西首先得说一个都熟悉的场景-在线听歌或者在线看电影 在线看电影的时候,当你的网络带宽不足看高清视频或者突然下降到视频播放的比特率以下时,可能碰到缓冲中30%,50%最后100%的 况,其实buffer缓冲区是为了流的消费者的体验服务的,比如当一首歌的音频流需要256kbps的速度播放,而你的带宽只有200kbps时,流可能会在开始播放之前30秒就预加载并放入缓冲区,然后你就一边听直到最后流下载完了你也听完了,缓冲区能提前加载你还没听到的部分,也有可能保存你听过的部分,这样你可以点击任意时间处可以从那个进度开始播放。说完这些,应该知道了流最大的好处就是你可以一边下载一边使用,看电影的时候不用下完了才看,可以边下边看 下载完电影再看就是同步的感觉,一边下载一边看就是一种异步的味道,仔细品位,facebook的bigpipe其实不也是利用了这样的一种思路去解决前端性能优化的问题吗。 ...

js单元测试sinonjs库

单元测试的意义 提高测试效率 提升代码质量 能够及时重构代码,减少依赖项 更好的理解需求和业务逻辑,因为每一个测试可能对应一个测试用例 好的测试代码可读性强,新人也能很好的通过测试代码了解到需求,减少维护成本 sinonjs就是这样一套面向js的单元测试辅助库 当我们需要测试的某个方法中,需要去某个接口发送http请求获得数据,如果你真实的发送某个请求,那么当有一天你请求的这个服务器挂掉的时候,你的单元测试就怎么也跑不过了,其实我们要测试的时候我们这个方法针对数据库的其他处理逻辑,我们并不是真的关心这个接口是否存在(甚至是否实现),那我们需要模拟一个这样的接口来返回假的数据,sinonjs就是为了解决这个问题的 { setUp: function () { sinon.spy(jQuery, ...