我希望开始写一个复杂的应用程序在JavaScript上运行在网络上。我以前直接使用DOM和一些jQuery用JavaScript编写过一些一次性代码。但这是我第一次希望编写一个在浏览器中运行的成熟的应用程序。
所以,我想知道人们在用JavaScript进行严肃的开发时更喜欢什么样的工具链。特别是,我对以下内容感兴趣,以及一些关于您为什么选择您所做的组件以及它们如何整合到您的工作流程中的信息:
我在这里对“这里有一堆你可以使用的东西”的列表不感兴趣(我知道很多可用的工具),而更多的是你在实践中实际使用的堆栈以及它们是如何组合在一起的。我希望将其主要作为客户端应用程序来开发,服务器只是用于身份验证和存储和检索数据,所以我对您使用什么服务器端框架不感兴趣,除非它以某种方式集成到客户端代码中。
edit:我特别感兴趣的是单元和用户界面测试框架,以及如何将它们自动化。我更喜欢能够从命令行运行一个"make test“或"rake test”任务来运行项目的所有测试,并让它根据测试的成功或失败返回一个状态。这将允许更容易地与buildbot集成。此外,如果有人为不依赖于浏览器的代码编写单元测试,以便更快地完成测试的子集,我很感兴趣。这些单元测试可以在浏览器之外(在Rhino、爬行猴、v8等中)运行。
发布于 2009-09-26 02:27:56
您使用哪些编辑器和编辑器插件/模式/脚本?我通常是Emacs用户,目前正在使用js2.el,但我对其他设置很感兴趣。
我通常使用Textmate (与JavaScript、jQuery和Prototype捆绑包一起)。在进行繁重的前端开发时,我需要在HTML、CSS和JavaScript文件之间快速切换,我会选择vim的拆分面板视图。在执行此操作时,我会根据自己的心情使用macvim或终端+ Visor。显然,我是Mac用户。
你使用任何类型的集成开发环境(
,Dashcode,或类似的)吗?
不是的。我曾经使用过Coda,但它的文本编辑器功能还不够理想。我还玩弄了interesting...but meh的Espresso。
您使用哪些JavaScript库或框架?
根据项目的需要,我同时使用jQuery和Prototype。为了说明每个框架的优点,我喜欢将jQuery称为DOM操作框架并构建脚本框架的原型。因此,我倾向于在那些专注于标记的项目上使用jQuery,并在更多脚本化的应用程序类型的项目上使用原型。
您是否使用任何编译为JavaScript的语言(GWT、haxe、Objective-J)?
绝对不是--我对这样的框架有哲学上的抱怨。与服务器端代码不同,前端代码在用户的浏览器中运行,在您无法控制的环境中运行。因此,我认为生成尽可能好的代码是JavaScript开发人员的责任。不太理想的代码可能会影响性能,像Objective-J (这是我使用过的列表中的唯一一种)这样的语言编译的JavaScript永远不会像强大的JavaScript开发人员生成的代码那样紧凑。
你使用什么单元测试框架?如何调用它们?可以从编辑器/集成开发环境、命令行、网页中的浏览器、JavaScript调试器调用它们吗?
我是jQuery单元测试框架QUnit的铁杆粉丝。Dojo的DOH Unit Testing也很不错。
不要错过FireUnit,它是一个用于单元测试的漂亮的Firebug扩展。
另请参阅Razor。
你使用了哪些自动化的用户界面测试工具(比如Selenium,Watir,Sahi)?再说一次,如何调用这些?(能够从命令行调用单元测试和接口测试对于运行buildbots非常有用)
必要时我会使用Selenium,但这种情况很少见。
您还使用哪些其他代码质量工具(JSlint、代码覆盖率工具或类似工具)?
我使用并喜爱JSLint。
Firebug有一个很好的code coverage extension,而Firebug被广泛认为是最好的。在我的大多数日常JavaScript工作中,我没有发现代码覆盖率有多大用处。
你使用什么作为你的调试环境(Firebug,WebKit检查器,等等)?它与您的编辑器或IDE有任何集成吗?
据我所知,Firebug是JavaScript开发的杀手级应用。一些有用的调试特性:
Variable tooltips
WebKit检查器很好,DragonFly也很好,Debug Bar对追踪IE很有用,bugs...but FireBug就是我想要的。
在部署代码之前,你会对代码运行什么后处理(模糊处理器、迷你器、任何类型的优化器)?
我有意不使用任何后处理工具-- JavaScript的一个很好的方面就是它的开放性,我不想让新手JavaScript开发人员更难从我的工作中学到东西。更不用说重建混淆的JavaScript是非常简单的。
只有一个实例需要缩小JavaScript来节省带宽。在这种情况下,我设置了一个SVN post-commit hook来运行Doug Crockford出色的JSMin。
您的工具链中是否还有其他重要的工具(专门针对基于浏览器的应用程序的JavaScript开发;我已经有了一个非常好的版本控制系统、bug跟踪器等)?
alert()
函数;) 发布于 2009-12-02 14:45:12
在提出这个问题的时候,Google’s closure compiler并没有参与竞争。
这是一个非常好的工具,可以比许多其他工具更好地最小化JavaScript。你可以用page speed运行它来分析现有的网站。它还内置了很多其他功能,比如检测死代码、引用等。
发布于 2009-09-26 03:11:03
RubyMine/ editing.
上的微件
https://stackoverflow.com/questions/1480186
复制相似问题