2012-07-25 46 views
3

我开始学习淘汰赛js,我打算建立一个中型应用程序,如配餐1000用户和1000个条目。我想知道你们是如何构建你的js文件的淘汰赛js应用程序?它像像knockout js应用程序的正确文件结构是什么?

LIB/

应用程序/

应用程序/模型/

应用程序/视图/

应用程序/控制器/

或常规MVC文件结构你有不同的结构?

回答

3

这似乎是一个非常开放的问题,因为没有“正确”的方式来构建应用程序。而且,不同规模的应用程序将获得不同结构的不同优势。您可能只有几个型号,根本不需要任何文件夹。你需要几个。无论如何,在我的答案。

由于您特别提出了关于淘汰赛的问题,因此假设您只考虑客户端JavaScript,而不是服务器的代码。如果您在谈论整个应用程序结构,请在您的问题中澄清一下。

首先,Knockout没有控制器。它有ViewModels。这可能看起来像是语义上的区别,但实际上并非如此。管制员相对愚蠢;他们将行为从视图转移到模型中的业务逻辑。另一方面,ViewModels很聪明;它们包含业务逻辑和视图将消耗的公共属性和方法。

模型通常不是Knockout方面的一部分。他们将在您的服务器上,并代表您的数据库表(这是一个泛化,显然存在例外)。使用这两种方法,我们消除了controllermodel目录,并留下了viewmodels目录。

视图更棘手。视图是你的HTML,但如果你想重用它们,它们也可以是你的挖空模板。要保持你的“意见”和你的“模板”之间的分离,我会打电话给这个目录templates

最后,我不会把这些放在lib目录中。你的应用程序本身不是一个库。这是应用程序。所有这些应该在你的公共javascript文件夹下(因为网络需要访问它),但是我没有看到任何理由把它推到树的下面。当然,你需要一个lib目录用于其他插件,但它将被你的Knockout应用程序使用,所以lib应该与你的应用程序在同一级别。

+0

我把jquery,knockout和其他依赖项放在lib文件夹中,我的逻辑在模型文件夹中。这可以吗?另外,HTML文件是视图? – 2012-07-25 18:13:26

+0

“OK”是相对的。如果它适合你,并保持你的组织,那么它可能是好的。你的HTML文件去哪里真的取决于你有什么样的服务器设置。我无法回答。 – Tyrsius 2012-07-25 18:17:46

相关问题