【问题标题】:Should I use a single framework codebase for multiple sites or one for each site?我应该为多个站点使用一个框架代码库还是为每个站点使用一个框架代码库?
【发布时间】:2012-01-04 09:49:55
【问题描述】:

情况如下:

  • 使用特定框架构建多个站点。
  • 所有网站都托管在同一台服务器上。
  • 每个站点都有自己的数据库

由于所有站点都托管在同一位置,并且它们都具有共同的框架代码,因此我可以轻松地在服务器上安装框架,并让每个站点使用与其框架代码相同的文件。 这样我只有 1 个框架安装,所有网站都在使用。

第二种选择是让每个站点都使用自己安装的框架。

选项 1 的优缺点:

  • 只需为多个网站的框架维护1个代码库
  • 框架更新立即适用于所有网站
  • 如果 1 个站点对框架有不同的需求,或者有不再与最新框架版本兼容的代码,则需要自定义框架兼容性补丁。 (并不总是有时间或预算来保持旧项目与最新框架版本兼容)

选项 2 的优缺点:

  • 为每个站点维护单独的框架
  • 必须为每个站点单独应用框架更新
  • 如果 1 个站点对框架有不同的需求,或者没有预算来与最新的框架更新兼容,我们根本不会更新该站点的框架安装。
  • 如果确实有必要,站点可以快速修改其框架以满足需求,而不会干扰服务器上的其他站点。

所以选项 1 似乎更易于维护,而选项 2 则更加灵活。我不知道什么是最重要的。 2 个选项中哪个是总体最佳选择?还是有更多可能的选择?

【问题讨论】:

  • 选项 2,始终。始终将您的全局状态降至最低。

标签: oop frameworks coldfusion installation dry


【解决方案1】:

我的处理方式略有不同。

我会有这样的目录结构:

/sites/
    /site1/
    /site2/
    [etc]
/framework/
    /1.0/
    /1.1/
    /1.x/
    [etc]

然后在每个站点中都有一个 /framework 映射,该映射指向该站点正在使用的框架版本。这样每个站点的框架版本都独立于其他站点:如果一个站点需要与其他站点不同的框架版本(卡在旧版本上,在其他站点测试之前需要新版本),那么您可以控制那种粒度。同样,更改 /framwork/nightly/ 中的代码库(例如)将“自动”更新所有站点,其 /framework 映射指向该代码库的前沿版本。

【讨论】:

  • 我同意这个解决方案。搭建“平台”。除了框架之外,通常可以在多个站点上利用内部服务。
【解决方案2】:

就个人而言,我将始终让每个站点都使用自己的框架代码库,或者至少使用冻结在固定版本的共享代码库。共享框架的问题在于,每次更新时,您都必须使用该共享代码库测试每个站点,以确保它们仍然按预期工作。当框架弃用您在其中一个站点中使用的功能时,还会发生什么?它可能会阻止您进行更新,从而使您面临安全问题。

选项 2 确实会给您带来更多的维护开销,但在我看来这是最安全的方法。

【讨论】:

    【解决方案3】:

    这取决于几个因素。

    有多少开发人员在网站上工作?框架是否得到很好的支持和记录?是否有*更好的框架可用(通过文档、开销(内存占用)和社区支持更好)。 12 个月或更长时间后,哪个选择看起来会更好。

    选择 1 因其一致性和熟悉度而吸引人。

    Choice 2 因其潜力、学习和未来发展而吸引人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-28
      • 1970-01-01
      • 1970-01-01
      • 2010-11-25
      • 1970-01-01
      • 1970-01-01
      • 2017-06-15
      • 2012-07-31
      相关资源
      最近更新 更多