【问题标题】:Code organization : How does Google organize it's code?代码组织:谷歌如何组织它的代码?
【发布时间】:2011-08-08 18:15:20
【问题描述】:

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

每个模块都有自己的生命周期和自己的一组更新,这些更新按计划发布,不必与其他模块同步。

所以,我们目前使用的结构是:

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

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

我们现在的问题是在 TFS 中组织代码,这将有助于我们完成以下工作:

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

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

【问题讨论】:

  • 我记得读过一个类似的问题,但找不到。我认为它在 SO 上,但我也在programmers.stackexchange 中搜索,但没有结果。有人记得吗?

标签: .net asp.net tfs structure organization


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2018-10-12
    • 1970-01-01
    • 2011-06-04
    • 2014-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-18
    相关资源
    最近更新 更多