我目前正在开发一个基于backbone.js构建的大型Web应用程序,并且在组织,"僵尸"等方面遇到了很多问题.所以我决定做一个主要的代码重构.我已经编写了一堆辅助函数来处理"僵尸"; 但是,我想从一开始就为代码创建一个很好的结构/组织.我没有在大型的backbone.js组织上找到很多很棒的教程/示例,所以我从头开始,想看看我是否可以就我开始的地方得到一些意见.
我显然在全局命名空间中设置了我的代码; 但我也想保持这个命名空间相当干净.我的主要app.js使类文件本身与全局命名空间分开; 您可以使用reg()函数注册一个类(以便可以实例化它),而inst()函数可以从classes数组中实例化一个类.因此,除了3种方法之外,MyApp命名空间只有路由器,模型和视图:
var MyApp = (function () {
var classes = {
Routers: {},
Collections: {},
Models: {},
Views: {}
};
methods = {
init: function () {
MyApp.Router = MyApp.inst('Routers', 'App');
MyApp.Model = MyApp.inst('Models', 'App');
MyApp.View = MyApp.inst('Views', 'App');
Backbone.history.start();
},
reg: function (type, name, C) {
classes[type][name] = C;
},
inst: function (type, C, attrs) {
return new classes[type][C](attrs || {});
}
};
return methods;
}());
$(MyApp.init);
Run Code Online (Sandbox Code Playgroud)
在模型,集合,路由器和视图中,我像往常一样工作,但是然后需要在文件的末尾注册该类,以便可以在以后实例化它(不会使命名空间混乱):
MyApp.reg('Models', 'App', Model);
Run Code Online (Sandbox Code Playgroud)
这似乎是组织代码的不必要的方式吗?其他人是否有更好的例子来说明如何使用许多路由器,集合,模型和视图组织真正的大型项目?
我们有一个小型数字团队(3名设计师,3名开发人员),并希望将Git集成到我们的系统中.
目前,对于我们的大多数网站,我们都有一个临时站点(dev.example.com)和一个生产站点(example.com).我们的开发人员通常会对本地版本进行代码更改,将这些更改移至暂存站点,然后一旦获得批准,这些更改将被实时移动.另一方面,我们的设计师直接对临时站点进行小编辑(当开发人员太忙时),然后在批准后立即推送.此外,在某些情况下,我们没有暂存站点,编辑会直接推送到生产站点.
我知道不同的工作流程并不理想,但是我们将Git集成到当前系统并保持工作流程相当简单(为了设计者的利益)的最佳方式是什么?我们当前的工作流程是否应该在合并Git之前首先进行标准化(即,分段站点是强制性的,设计人员必须在推送到分期之前在本地开发)或者Git是否足够灵活以便按原样工作?
我对Git相当新,但已经读到只应该将一个推送到一个裸存储库.这有必要吗?如果是这样,这可能是暂存网站吗?或者它应该是它自己的实体(即在像example.local这样的内部服务器上)?
一个好的工作流程是这样的:
这个工作流程的唯一问题是裸机库似乎没必要......不是吗?最后,我了解将在本地存储库中记录的内容(用户更改,提交等),但我不清楚将在裸存储库(推送后),暂存(在拉动之后)上记录的内容)和生产(拉动后); 可以轻松跟踪和记录上述所有步骤吗?
感谢您提供的所有建议/答案!