你的JavaScript工具链有哪些内容? [已关闭]
你的JavaScript工具链有哪些内容? [已关闭]
我打算用JavaScript编写一个复杂的网络应用程序。以前我用JavaScript写过一些临时代码,直接使用DOM和一点点jQuery。但这是我第一次尝试编写一个完整的浏览器应用程序。
因此,我想知道人们在JavaScript开发中更喜欢使用哪些工具链。特别是,我对以下内容感兴趣,包括你选择的组件以及它们如何融入你的工作流程:
- 你使用哪个编辑器和编辑器插件/模式/脚本?我一般使用Emacs,目前正在使用
js2.el
,但我也对其他设置感兴趣。 - 你使用任何IDE(如Aptana、Dashcode等)吗?
- 你使用哪些JavaScript库或框架?
- 你使用任何编译成JavaScript的语言(如GWT、haxe、Objective-J)吗?
- 你使用哪些单元测试框架?如何调用它们?你能从编辑器/IDE、命令行、网页浏览器、JavaScript调试器中调用它们吗?
- 你使用哪些自动化用户界面测试工具(如Selenium、Watir、Sahi)?同样,如何调用它们?(能够从命令行调用单元测试和界面测试将非常有用,以便运行构建机器)
- 你使用哪些其他代码质量工具(如JSlint、代码覆盖工具等)?
- 你在调试环境中使用什么(Firebug、WebKit inspector等)?它是否与你的编辑器或IDE集成?
- 你在部署代码之前运行什么后处理(混淆器、缩小器、任何类型的优化器)?
- 你是否有任何管理模块依赖性或按需加载代码的工具?我将要编写的应用程序将处理大量的代码,我希望尽量减少加载时间,因此追踪所需模块或按需加载代码的工具将非常有帮助。
- 你的工具链中是否还有其他必备工具(特定于基于浏览器的JavaScript开发;我已经有了完全好用的版本控制系统、bug跟踪器等)?
我对“这里有一堆你可以使用的东西”不太感兴趣(我知道很多可用的工具),而更关注你实际使用的工具堆栈以及它们如何协同工作。我希望将其主要作为客户端应用程序进行开发,服务器仅用于身份验证和存储和检索数据,因此我对你使用的服务器端框架不感兴趣,除非它在某种程度上与客户端代码密切相关。
编辑:我特别关注单元测试和用户界面测试框架,以及你如何自动化它们。我希望能够从命令行运行一个“make test”或“rake test”任务,以运行项目的所有测试,并根据测试的成功或失败返回状态。这将更容易与构建机器集成。此外,我想知道是否有人编写了可以在浏览器之外(如Rhino、spidermonkey、v8等)运行的单元测试,用于不依赖浏览器的代码,以便更快地运行部分测试。