[原创]企业Web2.0项目开发必备 - http://code.google.com/p/jslint-toolkit/
2009-08-21 21:54
609 查看
引子
现在很多企业都上马了Web2.0项目,而Web2.0的一个重要特征就是AJAX交互。那么如何在企业Web2.0项目中对大量JavaScript脚本进行质量控制,是很多人头疼的问题。
著名的JSON数据交互格式的发明人Douglas Crockford在很久以前就开始关注这个问题,并给出了相应的解决方案 - JSLint,通过对JavaScript代码进行规范来减少BUG的数量。
但是JSLint一次只能对一个JavaScript文件进行验证,虽然Visual Studio, Aptana, Eclipse等著名的开发工具都有相应的JSLint的插件,但这些插件也仅限于个人使用。
如果能够对一个项目中的所有JavaScript文件进行验证,并给出直观的验证报告,将对项目中JavaScript的代码质量起到直观重要的作用。
JSLint-Toolkit闪亮登场
我最近开源了一个项目JSLint-Toolkit,可以方便的解决这个问题的。
为了让大家有个直观的感受,我们先介绍一下JSLint-Toolkit的使用方法:
修改config.json
'{a}' is already defined.
Extra comma.
Unnecessary semicolon.
Missing radix parameter.
更详细的介绍可以从 http://code.google.com/p/jslint-toolkit/ 下载JSLint-Toolkit,在jslint-toolkit-rhino\doc\lint_msg.htm 中找到。
JSLint-Toolkit中使用的技术
JSLint-Toolkit使用了两项关键开源技术:JSLint 和 Rhino。
以下是一个详细的列表:
Rhino
Rhino (JavaScript in Java) is open source and licensed by Mozilla under the MPL 1.1 or later/GPL 2.0 or later licenses, the text of which is available at http://www.mozilla.org/MPL/ You can obtain the source code for Rhino from the Mozilla web site at http://www.mozilla.org/rhino/download.html
JSLint
JSLint is a JavaScript program that looks for problems in JavaScript programs. It is a code quality tool. http://www.jslint.com/
We use the rhino version of JSLint, You can obtain the source code here: http://www.jslint.com/rhino/index.html
Qooxdoo
Qooxdoo is a comprehensive and innovative Ajax application framework. No HTML, CSS nor DOM knowledge is needed. It is open source under an LGPL/EPL dual license.
http://qooxdoo.org/
SyntaxHighlighter
SyntaxHighlighter is a fully functional self-contained code syntax highlighter developed in JavaScript.
http://alexgorbatchev.com/wiki/SyntaxHighlighter
jQuery
jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development.
http://jquery.com/
你还在等什么,试下呗......
现在很多企业都上马了Web2.0项目,而Web2.0的一个重要特征就是AJAX交互。那么如何在企业Web2.0项目中对大量JavaScript脚本进行质量控制,是很多人头疼的问题。
著名的JSON数据交互格式的发明人Douglas Crockford在很久以前就开始关注这个问题,并给出了相应的解决方案 - JSLint,通过对JavaScript代码进行规范来减少BUG的数量。
但是JSLint一次只能对一个JavaScript文件进行验证,虽然Visual Studio, Aptana, Eclipse等著名的开发工具都有相应的JSLint的插件,但这些插件也仅限于个人使用。
如果能够对一个项目中的所有JavaScript文件进行验证,并给出直观的验证报告,将对项目中JavaScript的代码质量起到直观重要的作用。
JSLint-Toolkit闪亮登场
我最近开源了一个项目JSLint-Toolkit,可以方便的解决这个问题的。
为了让大家有个直观的感受,我们先介绍一下JSLint-Toolkit的使用方法:
修改config.json
, // Exclude files "excludes": [], // Exclude file names "excludeNames": ["CVS"], // Output directory "outPath": "out" } 这个配置文件的意思:对scripts\\source目录下的所有文件以及scripts\\jquery-1.3.2.js进行验证,忽略名称为CVS的文件夹或者文件,把结束输出到当前目录下的out子目录。 双击run.bat运行: 打开out子目录的index.htm文件: ] 很简单吧。 对验证结果进行分类 有时会有很多错误(注意:这里的错误指的是JSLint的验证结果,是不合规范的地方,你可以在这里找到JSLint所使用的规范), 我们对错误进行了分级,这样有助于我们发现最严重的错误信息。 简单的把JSLint错误分为两类:Critical errors 和 Optional errors。 目前被划分到Critical Errors的有以下一些,我添加了简单的例子: Missing semicolon. // BAD var appDiscuss = { cred: "", baseURL: "/mashup/webclient/community/discussion/" } // GOOD var appDiscuss = { cred: "", baseURL: "/mashup/webclient/community/discussion/" };
'{a}' is already defined.
// Expected '{' and instead saw 'return'. // BAD if ($(this).attr('class')) return; // GOOD if ($(this).attr('class')) { return; }
Extra comma.
Bad for in variable '{a}'. // Bad for in variable 'prop'. // BAD for (prop in headers) { } // GOOD for (var prop in headers) { }
Unnecessary semicolon.
// Bad line breaking before '+'. // BAD var frame = '<div class="contentPane">' + '<div class="comments_show_hide panel_action">' + '</div></div>'; // GOOD var frame = '<div class="contentPane">' + '<div class="comments_show_hide panel_action">' + '</div></div>';
Missing radix parameter.
'{a}' was used before it was defined. // 'plus' was used before it was defined. // BAD function add(a, b) { return plus(a) + b; function plus(a) { return a + 1; } } // GOOD function add(a, b) { function plus(a) { return a + 1; } return plus(a) + b; }
更详细的介绍可以从 http://code.google.com/p/jslint-toolkit/ 下载JSLint-Toolkit,在jslint-toolkit-rhino\doc\lint_msg.htm 中找到。
JSLint-Toolkit中使用的技术
JSLint-Toolkit使用了两项关键开源技术:JSLint 和 Rhino。
以下是一个详细的列表:
Rhino
Rhino (JavaScript in Java) is open source and licensed by Mozilla under the MPL 1.1 or later/GPL 2.0 or later licenses, the text of which is available at http://www.mozilla.org/MPL/ You can obtain the source code for Rhino from the Mozilla web site at http://www.mozilla.org/rhino/download.html
JSLint
JSLint is a JavaScript program that looks for problems in JavaScript programs. It is a code quality tool. http://www.jslint.com/
We use the rhino version of JSLint, You can obtain the source code here: http://www.jslint.com/rhino/index.html
Qooxdoo
Qooxdoo is a comprehensive and innovative Ajax application framework. No HTML, CSS nor DOM knowledge is needed. It is open source under an LGPL/EPL dual license.
http://qooxdoo.org/
SyntaxHighlighter
SyntaxHighlighter is a fully functional self-contained code syntax highlighter developed in JavaScript.
http://alexgorbatchev.com/wiki/SyntaxHighlighter
jQuery
jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development.
http://jquery.com/
你还在等什么,试下呗......
相关文章推荐
- [原创]企业Web2.0项目开发必备 - http://code.google.com/p/jslint-toolkit/
- http://code.google.com/p/psi-probe/source/browse/trunk#trunk/web/src/main/webapp/js
- 使用SVN管理VC项目(解决无法访问https://code.google.com/hosting/settings)(服务器为Code Google)(转http://blog.csdn.net/xiadasong007/archive/2010/07/
- 检查JS语法的工具 JS Code Quality Tool: http://www.jslint.com/
- http://mypctest.googlecode.com/svn/trunk/jemu/js/jemu.js
- storm启动spring项目Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd'处理
- http://dynamorio.googlecode.com/svn/trunk/
- 谷歌推出的基于WebGL下的鱼缸测试页面(用于网页速度测试)http://webglsamples.googlecode.com/hg/aquarium/aquarium.html
- 不错的介绍JS中Cookie的文章本篇文章来源于:开发学院 http://edu.codepub.com 原文链接:http://edu.codepub.com/2009/0528/4789.php
- android http://code.google.com/p/roboguice/
- google jQuery引用文件直接引用地址http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js
- 该如何加载google-analytics(或其他第三方)的JS (转自http://www.cnblogs.com/BearsTaR/archive/2010/05/12/best_use_google_analytics.html)
- dubbo项目启动报无法读取方案文档 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd', 原因为 1) 无法找到文档; 2) 无法读取文档;
- [置顶] 刚刚建的仅2k的可配置的PHP URL 路由 http://code.google.com/p/qserouter/
- werner邀请您访问【智诚源码平台】-中国优秀的商业项目源码开源技术平台 http://www.zccode.com/?fromuid=17631
- http://code.google.com/p/aspjson/
- Project Hosting on Google Code 为开放源代码项目提供了自由的协作开发环境。
- andriod gson 解析:jar下载(及帮助文档 ) http://code.google.com/p/google-gson/
- http://code.google.com/p/apps-for-android/
- 通过软件freeGate来获取google项目托管的svn密码【googlecode.com password】