我期待着開始在JavaScript中編寫一個複雜的應用程序來在網絡上運行。我之前在JavaScript中寫了一點點的一次性代碼,直接使用DOM和一點jQuery。但這是我第一次想要編寫一個完整的應用程序在瀏覽器中運行。你的JavaScript工具鏈是什麼?
所以,我想知道什麼工具鏈人們喜歡在JavaScript中進行認真的開發。尤其是,我很感興趣,下面有關於你爲什麼選擇你做組件的一些信息以及它們是如何結合在一起到您的工作流程一起:
- 什麼編輯器和編輯器插件/模式/腳本你使用?我通常是一個Emacs用戶,目前我正在使用
js2.el
,但我有興趣瞭解其他設置。 - 你使用任何種類的IDE(Aptana,Dashcode或類似的)?
- 你使用的是什麼JavaScript庫或框架?
- 你使用任何編譯成JavaScript的語言(GWT,haxe,Objective-J)嗎?
- 你使用哪些單元測試框架?你如何援引他們?它們可以從你的編輯器/ IDE,命令行,瀏覽器,網頁,JavaScript調試器中調用嗎?
- 你使用什麼自動化用戶界面測試工具(如Selenium,Watir,Sahi)?再次,這些如何被調用? (能夠從命令行調用單元測試和界面測試對於運行buildbots會非常有用)
- 您使用了哪些其他代碼質量工具(JSlint,代碼覆蓋率工具或其他任何類型的工具)?
- 你對調試環境(Firebug,WebKit inspector等)有什麼用處?它是否與編輯器或IDE有任何集成?
- 在部署代碼(混淆器,縮小器,任何類型的優化器)之前,您在代碼上執行了哪些後處理?
- 您是否有任何種類的工具來管理模塊依賴關係或根據需要動態加載代碼?我正在編寫的應用程序將使用大量代碼,並且希望減少加載時間,因此用於跟蹤需要哪些模塊或按需加載代碼的工具將會很有幫助。
- 是否有你的工具鏈其他必需的工具(這是特定的JavaScript開發基於瀏覽器的應用程序,我已經有了一個完美的版本控制系統,bug跟蹤系統等)?
我對「這裏有很多可以使用的東西」(我知道很多可用的工具)列表以及更多的實際使用的堆棧列表不太感興趣實踐以及它們如何融合在一起。我希望主要將它開發爲客戶端應用程序,服務器僅用於身份驗證和存儲和檢索數據,所以我對您使用的服務器端框架不感興趣,除非它是客戶端的必備組件在某些方面代碼。
編輯:我在單位和用戶界面測試框架特別感興趣,你如何自動化它們。我喜歡能夠通過命令行來運行項目的所有測試運行一個單一的「做試驗」或「耙測試」任務,並使其返回取決於測試的成功或失敗的狀態。這樣可以更容易地與buildbots進行整合。另外,我很感興趣,如果任何人對不依賴於瀏覽器,更快的週轉上的一個子集的代碼編寫,可以外的瀏覽器來運行單元測試(在犀牛,SpiderMonkey的,V8等)的試驗。
很好的回答!很多有用的信息。一些評論:「像Objective-J這樣的語言編譯的JavaScript永遠不會像強大的JavaScript開發人員所產生的代碼一樣緊密 - 」聽起來像彙編程序員被解僱的高級語言。我聽說GWT做了一些相當令人印象深刻的優化,這很難手工完成。 「我不想讓新手開發人員從我的工作中學習更難」 - 我在這裏和你在一起,但我們很可能會得到很多代碼,所以縮小可能是必要的(代碼和代碼將是開源的)。 – 2009-09-26 02:49:43
彙編程序的比喻不一定是公平的,因爲您總是可以依賴於在相同環境中運行的彙編的抽象。可以運行相同JavaScript代碼的可能環境(瀏覽器/渲染引擎/平臺)的數量非常龐大。 關於公開採購您的作品的榮譽,非常感謝。如果你確實需要縮小,我建議把你的JavaScript縮小爲post-commit hook,正如我在我的回答中所建議的那樣。 – 2009-09-26 13:08:13
截至2011年2月,JSLint有一個有趣的分支,它引起了JS社區的一些興趣:http://jshint.com/ – dermatthias 2011-02-27 20:02:45