2012-06-05 32 views
3

我們有一個大型Web項目,我們需要可以相互交流的組件,這些組件可以放在不同項目的組件中央存儲庫中。 使用reuirejs和Backbone進行模塊化開發。通過骨幹和requirejs的不同樣板,但沒有符合我的要求。所以我創建了以下目錄結構。它可以解釋如下。用於基於組件的大型Web項目的Backbone-RequireJs樣板文件

---resources 
|---custom-components 
    |---mycomponent 
    |---js 
     |---views 
     |---models 
     |---collections 
    |---css 
    |---templates 
    |---mycomponent.js 
    |---mycomponent2 
    |---js 
     |---views 
     |---models 
     |---collections 
    |---css 
    |---templates 
    |---mycomponent2.js 
|---libraries 
    |---backbone 
    |---underscore 
    |---jquery 
    |---jquery-ui 
|---jqueryplugins 
    |---jcarouselite 
|---thirdpartyplugins 
|---page-js 
    |---mypage.js 
    |---mypage2.js 
  1. 資源目錄將包含的所有資源。在那之下,我們將會提到4個目錄。
  2. 圖書館,jqueryplugins和thirdpartyplugins都是他們所說的名字的目錄。
  3. page-js目錄將包含實際的main-js,它們將在我們的html文件中用作requirejs data-main屬性。
  4. 定製組件是我們創建的所有組件都將駐留的位置,因爲您可以看到它具有與組件相同名稱的js文件,該文件將作爲此構件的入口點。這個目錄也有js,css和模板的目錄。 CSS和模板將分別通過文本插件和CSS插件加載。 Js目錄將包含使這個小部件工作的所有主幹代碼。

自定義組件將被駐留在page-js中的main-js詢問。

即將到達我需要的東西。
1.我想讓專家從大型網站項目的角度審視這個目錄結構,您需要與其他團隊共享您的小部件。歡迎提出建議。
2.我的每個定製組件都將定義一個模塊,它將在包結構以及外部包結構中具有依賴關係。我想知道,是否有任何方法可以使用r.js來優化封裝結構中的自定義窗口小部件依賴項,並讓插件和庫分別進行優化。
3.我正在開發單頁面ajax應用程序,所以我會問需求模塊,所以我需要清理模塊和小部件,當我不需要它們時,是否有任何清理方法我應該知道?

+1

你檢查'骨幹-aura'(http://addyosmani.github.com/backbone-aura/)由阿迪·奧斯馬尼,基於文檔和您的要求,它可能會幫助您生成所需的體系結構 – dhaval

+0

在詢問此問題之前,我確實偶然發現了這一問題,但沒有找到您指定的鏈接。感謝您的鏈接。我研究了這一點,它解決了我的一個問題,清理。它還增加了一個pub/sub架構的更多令人興奮的功能。但是我的查詢2仍然存在,是否有一種方法來優化我的小部件。 – Vishwanath

+0

can's你可以使用'exclude'選項來避免因外部或不需要的依賴關係而優化 – dhaval

回答

2

關於目錄結構

作爲目錄結構的模式,我強烈建議使用CakePHP的目錄結構。它在文字中非常強大!我正在運行多個應用程序(其中一個像Groupon一樣大),它的功能就像一個魅力。
你可能需要稍微調整一下,因爲你知道,蛋糕是一個PHP框架,你的是一個JavaScript的。

這裏是蛋糕的真棒MVC的目錄結構:

enter image description here

請注意,您可以承載數以千計的應用程序在單一蛋糕安裝。所以如果你有興趣,你還在等什麼? go to their site並閱讀他們的文檔。


關於清理技術

嗯,這裏是我不喜歡的Javascript的缺點之一。沒有真正的方法來銷燬像Java或C++這樣的面向對象模塊。這裏我們沒有像C++的~析構函數那樣的東西。

多年來,程序員使用module = null從未使用的代碼釋放內存。

這些也看看:

希望它可以幫助和設計你的應用程序的好運氣; d

1

也許我在回答這個問題的時候已經晚了,但無論如何,請允許我在這裏重申我的觀點,否則別人認爲它有用。

  1. 你的目錄結構看起來沒問題。將您的業務組件自包含到特定目錄始終是一個更好的設計。我不會推薦違反開放原則的Cake MVC結構。還可以看看http://boilerplatejs.org推薦的目錄結構,它是用於大規模JavaScript開發的參考體系結構。

  2. 我不明白這個問題。當r.js運行時,它會優化它在目錄中找到的所有JS文件(排除可能),然後通過依賴關係樹來創建單個腳本。在生產中,您只需要該單一腳本(如果使用i18n插件,則加上語言環境文件)

  3. 請閱讀下面的博文。它可能給你一些提示:http://blog.hasith.net/2012/11/how-much-multi-page-single-page.html

+0

真棒文章你有... – Vishwanath

相關問題