一套开发富客户端的javascript工具:Google Closure Tools

jopen 10年前

Google Closure Tools是Google内部使用的JavaScript开发工具,主要包括Closure Compile、Closure Inspector、Closure Linter、Closure Stylesheets、Closure Library和Closure Templates,这些工具都可以独立使用。

Closure Compile

Closure Compile是一个独立的JavaScript编译器,主要用于对JavaScript进行压缩,但它与其他压缩器如JSMin、YUI Compressor不同的是,它不仅仅是去除注释和空白,还可以在保证代码正确性的情况下进一步地改写成更省空间的做法,例如:
    a = new Object => a = {}        a = new Array => a = []        if (a) b() => a && b()        return 2 * 3; => return 6;  
</div> </div> 经过测试,非Closure Library编写的JavaScript代码经过Closure Compile编译后可用。
</div>

Closure Inspector

Closure Inspector是应用于火狐浏览器的插件,可以与Firebug协同工作,对压缩后的代码进行调试,提供了源码匹配、改进的栈跟踪、单元测试集成功能。

Closure Templates

Closure Templates工具提供了一个在JavaScript中做模板的机制及函数库,可以把HTML布局的部分写成一个模版,接着再利用Closure提供的工具把这个模板编译成JavaScript代码,这样可以省去很多处理页面的工作。Closure Templates既可以生成JavaScript,又可以实现Java,所以可以在服务器和客户端使用相同的模板。

Closure Linter

Closure Linter是针对Google推出的JavaScript编码规范Google JavaScript Style对JavaScript编码风格进行校验的工具,能很大程度上提升代码的可读性。

Closure Stylesheets

Closure Stylesheets是一个Java程序,它向CSS中添加了变量、函数、条件语句以及混合类型,使得我们更易于处理大型的CSS文件。开发者可以用它来生成web应用程序或者网站所使用的真正的CSS文件。详见Google Closure Stylesheets让我们更易于使用CSS

Closure Library

Closure Library是一个面向对象,模块化,跨浏览器的JavaScript库,同时提供了大量的UI组件以及一些底层的应用如DOM操作、服务器交互、动画、数据结构、单元测试、富文本编辑等。
优点:
1. 功能强大,组件丰富,文档齐全,适用于对性能要求高的Web应用
2. 面向对象,在模块化、程序结构组织、逻辑封装等方面有优势
3. 使用Closure Compile能大程度的进行压缩和优化
缺点
1. 与Dojo复杂程度相当,框架庞大,学习曲线陡
2. 代码中存在一些漏洞,详见Google Closure: 糟糕的JavaScript
3. 相比jQuery,维护的人员要少

Closure Lite

Closure Lite是利用Closure Compile对Closure Library的核心进行编译后生成的一个单独js文件,只有33k,引用起来很方便。但是它并没有解决Closure Library中所提到的缺点。

参考资料

1. Google Closure and jQuery, Side by Side
2. Getting Closure: Don’t just use it, don’t just abuse it
3. closure-library 第一章 Closure介绍

项目主页:http://www.open-open.com/lib/view/home/1388577172828