2012-05-25 27 views
6

我想知道您如何在使用MVC(骨幹網絡)的大型Web應用程序中組織文件/直接存儲的意見。
我會做出以下(*)。請告訴我你的意見。應該如何在JavaScript應用程序中使用MVC組織規範文件


(*)

js 
js/models/myModel.js 
js/collections/myCollection.js 
js/views/myView.js 
spec/model/myModel.spec.js 
spec/collections/myCollection.spec.js 
spec/views/myView.spec.js 

回答

3

這是我如何按傳統方式組織我的文件。然而,我發現,對於更大的應用程序來說,將所有事物組織起來,命名獨特等都是一件非常痛苦的事情。我一直在討論的一種「新」方式是通過功能而不是類型來組織我的文件。因此,舉例來說:

js/feature1/someView.js 
js/feature1/someController.js 
js/feature1/someTemplate.html 
js/feature1/someModel.js 

但是,經常有全球性的「事情」,你需要像「用戶」或位置收集用戶已建成。所以:

js/application/model/user.js 
js/application/collection/location.js 

這種模式向我建議,因爲這樣你可以在功能設置,包工作,他們使用requirejs用相對較少的努力進行部署。它還減少了功能集之間出現依賴關係的可能性,所以如果您想要刪除某個功能或使用全新代碼進行更新,則可以替換「stuff」文件夾而不是搜索每個文件。而且,在IDE中,它只是使您正在處理的文件更容易找到。

我的兩分錢。

編輯:怎麼樣的規格文件?

一些想法 - 你只需要選擇一個對我來說最自然的想法。

  1. 您可以在規格文件中遵循相同的「功能文件夾」模式。好處是所有的規格都在一個地方。現在的缺點是,就像你現在正在做的那樣,你必須放置一個功能的文件。
  2. 您可以將規格放在功能文件夾的「規格」文件夾中。好處是你現在有了真正的軟件包,可以將它們封裝在一個zip文件中,而不會破壞其他工作。爲編寫測試找到直接相關的文件也很容易 - 它們都在同一個父文件夾中。缺點是,現在您的生產代碼和測試代碼位於同一個文件夾中,並將其發佈(可能)到世界各地。當然,你可能最終會在某個時候編譯生成JavaScript到一個文件..所以我不知道這是一個問題。
  3. 我的建議 - 如果這是一個很大的應用程序,並且你認爲你將有幾隻手觸摸這些文件,在文件夾中留下一個'package.json/yml/xml'文件。在那裏,列出你需要測試的產品,規格和任何數據文件(你可能寫一個快速的shell腳本來爲你做這件事)。然後寫出一個快速腳本來查看源文件夾中的'package.whateverYouChose'文件,獲取測試文件,然後使用它構建您的單元測試頁面。因此,假設您添加了另一個軟件包..運行'updateSpecRunner'或任何您命名的腳本,它會生成另一個SpecRunner.html文件(或任何您命名文件的運行規格)。然後你可以在瀏覽器中手動測試它,或者使用phantomjs/rhino自動執行它。

這有道理嗎?

+0

怎麼樣的規格文件? – js999

+0

我馬上更新我的答案。 – Stephen

+0

謝謝,我會在接受之前先研究你的答案......謝謝你的時間 – js999

相關問題