tangram是百度前端研发部推出的一个开源js库,在百度各产品线上广泛使用。在开发tangram项目时,tangram开发团队制定了一个开发流程,用来保证项目质量和进度。在这个流程中,我们使用了各种开源工具来辅助提高效率,取得了良好的效果。本文将简要介绍这些开源工具和使用体会,希望对提升你的开发效率和质量有所帮助。
目前tangram的整个开发流程如下:
– 编写代码和单元测试用例。用到的工具有firebug和qunit。
– gjslint检查代码。
– 提交代码code review,用到的工具有Rietveld。
– 根据code review 结果修改代码,重新进行gjslint代码检查和过所有单元测试用例,直到code review通过
– 提交代码到github。用到的工具有git。
– 发布新的版本。使用jsdoc-toolkit生成api文档,使用ant生成需要的js文件,使用yui compressor js/css压缩工具压缩源代码。
整个开发流程及其中使用到的工具如下图所示:
根据在开发流程中出现的顺序,对每个工具简要介绍如下:
- firebug : 几乎所有写html/css/js代码的人都熟悉的工具,tangram开发调试中用到。
官方站点 : http://getfirebug.com/
- closure linter (gjslint) 代码检查工具。Google开发的js代码检查工具,它能够检查代码风格,语法错误,还能够自动优化代码,功能十分强大。我们在开发完Tangram的代码后用它来检测代码风格以及语法错误,来保持代码风格统一和提高代码质量。
官方站点 : http://code.google.com/closure/utilities/docs/linter_howto.html
- qunit jquery 团队开发的js单元测试框架,和jquery一样简单好用。我们开发时采用该js框架写测试用例。而我们的测试团队将其集成到测试平台内,然后在远程虚拟机上搭建了各种操作系统和浏览器的环境。该测试平台每天都会在各种浏览器下运行当天提交的所有代码的测试用例,并通过邮件自动发送测试报告。
官方站点 : http://docs.jquery.com/QUnit
- Rietveld Code Review Tool python 之父写的code review工具,通过它能很方便的进行多人code review 。Tangram在内部开发的每行代码都必须经过这个code review平台 review通过后才能提交到github。
官方站点 : http://code.google.com/p/rietveld/
- jsdoc-toolkit js版的javadoc,用于从源代码的注释生成文档。目前整个tangram.baidu.com的文档都是使用jsdoc-toolkit生成的。
官方站点 : http://code.google.com/p/jsdoc-toolkit/
- git git是linux之父 Linus Torvalds 开发的用于管理linux源代码的代码版本管理工具, 它具有分布式等特点,既能在单机上管理你写给自己用的小项目,也非常适合开发人员众多的大型项目。它方便的贡献代码机制更是为开源项目量身定制。tangram项目使用git进行版本管理,同时源代码也托管在github.com上。
官方站点 : http://git-scm.com/
- ant apache基金会旗下项目,用来build代码。tangram每次发布新版本时提供下载的各种源代码都是通过该工具生成。在tangram的release目录下就可以看到对于该工具的配置。
官方站点 : http://ant.apache.org/
- yui compressor js/css压缩工具,用于压缩js代码,减少下载消耗的带宽。tangram codesearch工具 以及发布的版本中包含的压缩代码都是该工具完成的。
官方站点 : http://developer.yahoo.com/yui/compressor/
当然还有另一个优秀的代码压缩工具 google closure compiler ,代码压缩率比yui 压缩工具要高
官方站点 : http://code.google.com/closure/compiler/
曼昆在《经济学原理》里面说,决定一