我開始學習淘汰賽js,我打算建立一箇中型應用程序,如配餐1000用戶和1000個條目。我想知道你們是如何構建你的js文件的淘汰賽js應用程序?它像像knockout js應用程序的正確文件結構是什麼?
LIB/
應用程序/
應用程序/模型/
應用程序/視圖/
應用程序/控制器/
或常規MVC文件結構你有不同的結構?
我開始學習淘汰賽js,我打算建立一箇中型應用程序,如配餐1000用戶和1000個條目。我想知道你們是如何構建你的js文件的淘汰賽js應用程序?它像像knockout js應用程序的正確文件結構是什麼?
LIB/
應用程序/
應用程序/模型/
應用程序/視圖/
應用程序/控制器/
或常規MVC文件結構你有不同的結構?
這似乎是一個非常開放的問題,因爲沒有「正確」的方式來構建應用程序。而且,不同規模的應用程序將獲得不同結構的不同優勢。您可能只有幾個型號,根本不需要任何文件夾。你需要幾個。無論如何,在我的答案。
由於您特別提出了關於淘汰賽的問題,因此假設您只考慮客戶端JavaScript,而不是服務器的代碼。如果您在談論整個應用程序結構,請在您的問題中澄清一下。
首先,Knockout沒有控制器。它有ViewModels。這可能看起來像是語義上的區別,但實際上並非如此。管制員相對愚蠢;他們將行爲從視圖轉移到模型中的業務邏輯。另一方面,ViewModels很聰明;它們包含業務邏輯和視圖將消耗的公共屬性和方法。
模型通常不是Knockout方面的一部分。他們將在您的服務器上,並代表您的數據庫表(這是一個泛化,顯然存在例外)。使用這兩種方法,我們消除了controller
和model
目錄,並留下了viewmodels
目錄。
視圖更棘手。視圖是你的HTML,但如果你想重用它們,它們也可以是你的挖空模板。要保持你的「意見」和你的「模板」之間的分離,我會打電話給這個目錄templates
。
最後,我不會把這些放在lib
目錄中。你的應用程序本身不是一個庫。這是應用程序。所有這些應該在你的公共javascript文件夾下(因爲網絡需要訪問它),但是我沒有看到任何理由把它推到樹的下面。當然,你需要一個lib
目錄用於其他插件,但它將被你的Knockout應用程序使用,所以lib
應該與你的應用程序在同一級別。
我把jquery,knockout和其他依賴項放在lib文件夾中,我的邏輯在模型文件夾中。這可以嗎?另外,HTML文件是視圖? – 2012-07-25 18:13:26
「OK」是相對的。如果它適合你,並保持你的組織,那麼它可能是好的。你的HTML文件去哪裏真的取決於你有什麼樣的服務器設置。我無法回答。 – Tyrsius 2012-07-25 18:17:46