我应该为多个站点使用单个框架代码库,还是为每个站点使用一个代码库?

时间:2012-01-04 09:49:56

标签: oop frameworks coldfusion installation dry

情况如下:

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

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

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

选项1的赞成和反对意见:

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

选项2的pro和con:

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

因此选项1似乎更容易维护,而选项2更灵活。我不知道什么是最重要的。 两个选项中哪一个是最佳选择?或者还有更多选择吗?

3 个答案:

答案 0 :(得分:5)

我的处理方式略有不同。

我有这样的目录结构:

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

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

答案 1 :(得分:2)

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

选项2确实为您提供了更多的维护费用,但在我看来这是最安全的方法。

答案 2 :(得分:0)

这取决于几个因素。

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

选择1对其一致性和熟悉程度很有吸引力。

选择2对其潜力,学习和未来发展具有吸引力。