【发布时间】:2010-12-01 14:22:36
【问题描述】:
我希望开始用 JavaScript 编写一个复杂的应用程序以在 Web 上运行。我以前用 JavaScript 写过一些一次性代码,直接使用 DOM 和一些 jQuery。但这是我第一次希望编写一个在浏览器中运行的成熟应用程序。
所以,我想知道人们更喜欢用什么工具链来用 JavaScript 进行严肃的开发。特别是,我对以下内容以及有关您选择所做组件的原因以及它们如何融入您的工作流程的一些信息感兴趣:
- 您使用什么编辑器和编辑器插件/模式/脚本?我通常是 Emacs 用户,目前正在使用
js2.el,但我有兴趣了解其他设置。 - 您是否使用任何类型的 IDE(Aptana、Dashcode 等)?
- 您使用哪些 JavaScript 库或框架?
- 您是否使用任何编译为 JavaScript 的语言(GWT、haxe、Objective-J)?
- 您使用哪些单元测试框架?你如何调用它们?是否可以从您的编辑器/IDE、命令行、网页中的浏览器、JavaScript 调试器调用它们?
- 您使用哪些自动化用户界面测试工具(例如 Selenium、Watir、Sahi)?同样,如何调用这些? (能够从命令行调用单元测试和接口测试对于运行构建机器人非常有用)
- 您还使用哪些其他代码质量工具(JSlint、代码覆盖率工具或类似工具)?
- 您在调试环境中使用什么(Firebug、WebKit 检查器等)?它是否与您的编辑器或 IDE 集成?
- 在部署代码之前,您会对代码进行哪些后处理(混淆器、压缩器、任何类型的优化器)?
- 您是否有任何工具来管理模块依赖关系或根据需要动态加载代码?我正在编写的应用程序将使用大量代码,并且我希望缩短加载时间,因此用于跟踪所需模块或按需加载代码的工具会很有帮助。
- 您的工具链中是否还有其他必要工具(专门针对基于浏览器的应用程序的 JavaScript 开发;我已经拥有完美的版本控制系统、错误跟踪器等)?
我对“这里有很多你可以使用的东西”的列表不太感兴趣(我知道很多可用的工具),更多的是你在实践中实际使用的堆栈以及如何使用这一切都融合在一起。我希望主要将其开发为客户端应用程序,服务器仅用于身份验证以及存储和检索数据,因此我对您使用的服务器端框架不感兴趣,除非它是客户端不可或缺的以某种方式附带代码。
编辑:我对单元和用户界面测试框架以及如何自动化它们特别感兴趣。我更喜欢能够从命令行运行一个“make test”或“rake test”任务来运行项目的所有测试,并让它根据测试的成功或失败返回一个状态。这将使与 buildbots 的集成变得更加容易。另外,如果有人为不依赖于浏览器的代码编写可以在浏览器之外(在 Rhino、spidermonkey、v8 等中)运行的单元测试,我很感兴趣,以便在您的子集上更快地周转测试。
【问题讨论】:
标签: javascript frameworks workflow development-environment