browserify-loader 目前的性能

性能是 browserify-loader 的关键指标,但是从目前的测试来看,性能并不理想。

browserify-loader 提供了一个查看性能的接口,window.define.performance(), 调用这个接口,就可以看到各个模块在各环节用时,以及总的性能比。

那如何衡量 browserify-loader 的性能呢?

假设没有加载器,脚本都是通过 script 标签一开始就全都引入到 HTML 中的,那所有这些脚本的加载时间就是性能时间。

加入了 browserify-loader 之后,包含以下这些消耗时间的地方:

  1. xhr 加载脚本,这个时间基本等价于 通过 script 标签加载脚本的时间
  2. define 的时间,给 xhr 加载过来的脚本打上 define 的 wrapper,在创建 script 标记插到页面中,再到 define 执行完毕
  3. 分析模块依赖的时间
  4. 获取真实模块依赖 uri 的时间,包括递归向上查找 node_modules 中模块的时间
  5. 等等

好吧,下面是粗略的测试结果:

`使用 browserify-loader 加载的总时间 / xhr 加载脚本的总时间 ≈ 2 – 5 倍

意思也就是,如果你啥也不用,加载要1s,使用 browserify-loader 可能需要 2 – 5s。这个时间大家可以接受么?

发表在 JavaScript, Node.js, 未分类 | 标签为 , , | 留下评论

browserify-loader 介绍

为什么需要 browserify-loader

最近在写一个模块加载器,叫做 browserify-loader。大名鼎鼎的 browserify 大家一定不陌生。 browserify-loader 的目标就是为在使用 browserify 开发是提供另外一种把 CommonJS 模块加载到浏览器端的选择。

有了 browserify-loader,开发时,无需再使用 watchifybrowerify-middleware 这样的工具来自动打包模块,提供打包后的模块服务。 继续阅读

发表在 JavaScript, Node.js, 未分类 | 标签为 , , | 留下评论

「转」团队实践:用teambition进行以Sprint为分类的敏捷开发

在敏捷开发这个词越来越火之后,公司的研发团队也逐渐向敏捷方向转型。前段时间团队用teambition来帮助进行敏捷开发,今天把我们团队如何以Sprint为分类进行敏捷开发的方法分享给大家。首先我们从产品的需求管理开始说起。 继续阅读

发表在 未分类 | 标签为 , | 留下评论

最近一些前端的模块化的感想

在模块化方面,Node.js就显得游刃有余。

作为用户,我们把代码放到一个个JavaScript文件中,然后Node.js就有一套规则帮我们把这些代码组织起来,Node.js还有包的概念,于是我们就可以使用npm将代码放到一个个包中,放到这里那里的node_modules中使用。很方便不是?感谢Node.js。 继续阅读

发表在 未分类 | 标签为 , , , | 一条评论

《CoffeeScript小书》更新啦

《CoffeeScript小书》刚开始发布的时候,豆瓣阅读还不支持插入代码,当时我将代码变成图片插在页面中。

不久前hustKiwi提醒我,豆瓣阅读支持插入代码了,所以今天抽空更新了一番,150张图片,全部换成了文本代码,真是个体力活呀!

效果不错——

继续阅读

发表在 CoffeeScript | 标签为 , , | 2 条评论

如何使用Teambition打造小而美的Scrum团队

我之前在大众点评网工作,公司在2013年完成了整个技术部团队向Scrum的转型,更多可以参考大众点评网研发管理高级经理唐灏:几百人规模的研发团队如何进行敏捷转型

现在我加入了Teambition,一个初创的团队,我们致力为追求效率及品质的团队打造简单、高效的项目协作工具。也是因为在大众点评网的Scrum体验,让我增加了对团队协作工具的兴趣,遂而加入了Teambition。

今天我想结合我在点评网的Scrum经历,给大家分享一下如何使用Teambition打造小而美的Scrum团队。我们从Scrum中的角色说起。 继续阅读

发表在 未分类 | 标签为 , | 留下评论

假期写了个小翅膀

假期七八天基本都宅在家里,写了一个小东西Backbone.tinywings——一个小巧的模板解析器。

说一点我在编写Backbone.tinywings的体验。

这是我第一次从无到有地编写一个东西。之前可能我会去阅读一些类似的项目的源码,搞清楚它们是如何运作的,然后自己再以一个宏大的设计构建一个出来。

这次则不一样,没有用grunt,没有用测试框架,我从最简单的需求开始编写代码。逐步迭代,每次都只实现一两个功能点,或者修改一些bug,测试通过(最开始测试代码就直接写在测试代码下面。),继续开发下面的功能点。

每天都迭代一点,可能是在早上下床前,可能是在睡觉前,有时抱着边看电视边写。七八天下来,“小翅膀”就成型了。

其实最开始我根本不知道该怎么写,写出来是什么样子! 继续阅读

发表在 JavaScript | 标签为 , | 5 条评论

【译】ES6的模块、构建工具及应用的发布

总的说来就是按照将来的标准书写,现在使用工具来适配。

我们已经有了服务端的依赖管理方案

  1. 安装并声明依赖;
  2. 在代码中获取(require)依赖;
  3. 将通用的代码打包并发布到同一个地方。(npm、gems等等)

浏览器端的依赖管理远远没有完成,并且现在情况看上去很糟糕 继续阅读

发表在 未分类 | 标签为 , , | 留下评论

windows中安装ubuntu 13.04 (what a fucking day!)

上次参见gurudigger的hacthathon,指导队友当场装了一个ubuntu,就装在windows8下。我分明看到ubuntu是这样的:

市场的图标就是一个A。

然后回家我也想装装看,到ubuntu.com,看各种消息再见Wubi:Ubuntu不再支持从Windows安装都说无法使用wubi.exe来在window上安装ubuntu 13.04了。

shit,那hackathon上我分明看到队友的window中跑滴就是ubuntu13.04呀,看着那个市场滴A我羡慕啊。

多方求证看来是无法安装了,那我只能升级我的12.04了,修改更新策略花了五六个小时升级到了12.10,然后又花了八个小时升级到了13.04,升级过程中,说ubuntu-deskstop这个包无法安装,跳过了。等我重启进去,说fontconfg什么什么的问题,进不去。

怎么办,无法直接安装,升级也升到我想吐血。

再次询问队友,当时是怎么装的,无果。

我把12.04的wubi下载下来,替换13.04中wubi不行,可是:

把13.04 iso解压将wubi拷贝出来,运行它,结果它就开始加载虚拟光驱中的镜像,在windows中安装ubuntu13.04了,本文就在安装好的系统中写成。

what a fucking day!

至今我没搞清楚,队友是如何装成的!

发表在 未分类 | 标签为 | 3 条评论

CoffeeScript 1.6.1发布,支持Source Map

3月5号,CoffeeScript发布了1.6.1版,开始支持期待已久特性——Source Map。

终于可以在Chrome中直接调试CS了,使用非常简单:

:coffee -c -m .

继续阅读

发表在 CoffeeScript | 标签为 | 2 条评论