代码组织:Google如何组织代码?

时间:2011-04-19 14:43:19

标签: .net asp.net tfs structure organization

简史:我在一家开发商店工作,我们做了很多基于ASP.NET的产品。随着公司组合的增长,我们在开发方面面临着一个棘手的问题。我们向客户销售了大约10个模块,我们希望它们在一个网址下销售。考虑谷歌服务(搜索/电子邮件/金融/等)的类比。

每个模块都有自己的生命周期,并且它自己的一组更新与其计划版本一样,不必与其他模块同步。

因此,我们目前使用的结构是:

  • 我们有一个最外层的shell网站,其中包含所有常用功能(用户/菜单管理/角色/等)
  • 这个最外层的shell(如上所述)应该有自己的库来支持它的功能。
  • 每个单独的模块都分为自己的Web应用程序和相应的库
  • 当构建发生时,我们现在编写自定义msbuild脚本以将所有模块部署为单个网站。
  • 我们还有脚本,如有必要,将负责部署单个模块,而不会影响整个系统。

上面的设置工作得很好,直到我发现它的规模问题......即,当我们在系统中有10个模块时,每个开发人员都必须将所有10个模块下载到他的本地系统。此外,我还没有找到一种方法来控制特定模块的生命周期,同时仍保持TFS结构的完整。

我们现在遇到的问题是在TFS中组织代码,以帮助我们完成以下任务:

  • 开发人员机器上的小尺寸(开发人员获取他/她正在处理的模块)而不是所有内容
  • 个人部署。单个模块的部署不应该在任何时间点影响其他模块(除非它是主要版本......并且它应该是一个计划的版本)
  • 个人生命周期管理:我必须能够在TFS中维护模块的多个版本并相应地工作。

平台: TFS 2010,Visual Studio 2010,C#,jQuery,CSS

1 个答案:

答案 0 :(得分:2)

我不是这方面的专家,但在我看来,您需要将开发流程与客户访问分开。

网站及其资源应具有独立的结构和模块部署。

您的构建和部署脚本应该负责从存储库构建新的生产环境。

开发结构不应该依赖于网站的结构。