10月21, 2011

tangram最优定制版codesearch工具

tangram是什么

tangram是百度前端开发团队开发的一款JS框架,该框架具有一下特点:

  • 可通过定制创建最适合的轻量级版本
  • 多种机制实现扩展,良好的插件支持
  • 丰富的中文文档以及案例,容易上手
  • 全浏览器跨平台兼容
  • 平滑的版本升级体验

tangram codesearch

tangram codesearch是一个tangram方法定制的工具,他可以定制你需要的tangram方法,将没使用到的方法去除,从而减少文件的大小,提升加载速度。

但在真正开发和使用这个工具的时候,你会发现这个工具很鸡肋,为什么呢?主要有下面几个原因:

  • 项目之初你可能根本不知道你要用到哪些方法,可能只能将一些最基本的方法选定,待开发过程中慢慢去重新定制。这种方式非常耗费时间。
  • 项目之初使用全部的tangram,项目完成时统计使用到哪些方法,然后将这些方法打包。首先统计需要耗费一定的时间,其次升级时都要做这个事情很麻烦。如果有哪个方法不在使用了,可能并不会删除。
    由于上面2种定制方式都带来很多问题,所以一般情况下直接使用全量的tangram,不再考虑使用定制的tangram了。
    有没有办法解决这个问题呢?
    如果有一种工具,可以自动分析开发的代码中使用到哪些tangram方法,然后将这些方法打包,那就可以很好的解决这个问题了。

最优定制版tangram codesearch

最优定制版tangram codesearch就是这样一款工具,这个工具可以让你在开发的时候直接使用全亮的tangram,然后在上线之前将开发的JS打成zip包,然后上传,系统就可以自动分析代码里使用了哪些tangram方法,并自动将这些方法打包。然后将最优定制后的文件覆盖原有的问题就可以了。

在线地址:http://www.welefen.com/lab/tangram-codesearch/index.html
虽然这个工具可以很好的解决定制的问题,但是也不是十分完美的,目前主要有下面几个缺点:

自动分析只是做了简单的识别,只识别代码中直接使用tangram里的方法,如:使用了baidu.dom.g, baidu.array.each。

不能识别如下的情况,如果有下面的情况暂时请手工添加:

  • 定义了变量var a = baidu.array, 然后使用a.each
  • 通过methodize,multize等方法后,然后使用该方法,如:将dom的很多方法集化到Element类上,然后使用类的方法
  • 通过extend将一个对象的方法扩展到另一个对象上,如:baidu.extend(a, baidu.array), 然后使用a.each

本文链接:http://welefen.com/post/optimize-of-tangram-codesearch.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。