【问题标题】:Uploading some specific features but not all developed features from development to live server将某些特定功能但不是所有已开发功能从开发上传到实时服务器
【发布时间】:2011-03-22 05:26:31
【问题描述】:

这或多或少与项目管理有关,也与每个开发人员有关。当您在开发站点上开发了许多功能并且所有功能都经过客户测试并准备上线时,你们如何处理这种情况。

这些功能在公共文件中有一些代码,即。一个 PHP 文件包含一项功能和另一项功能的代码。

但客户会要求您仅上传 10 个或 15 个功能中的 2 个。如果您直接上传该文件,则文件很常见会导致错误问题,因为它们具有其他功能的代码。如果您上传所有更新的文件,那么所有功能都会生效。

一种可能的方法是返回并从公共文件中注释掉现在不需要的功能。但是有可能忘记在其他任何地方发表评论。

这也不是一个好方法,最后客户会说一切都在开发服务器上进行了测试,以及为什么在实时服务器上引入了这些错误和错误。 这会降低对开发人员的信心。

我多次遇到这个问题,但找不到任何避免这些问题的好方法。所以我认为你们也面临或面临这个问题。

我认为版本控制系统可以在这里提供帮助。

你们是怎么处理的?

你能分享一下想法吗?

【问题讨论】:

    标签: php deployment project-management


    【解决方案1】:

    你所描述的情况是不可能理智地处理的。我不相信有可能使这种情况奏效,但真正的问题是您为什么要这样做?

    您描述的场景存在许多问题,但核心问题确实是这个。您正在测试一件事,并部署另一件事。您在问题中承认变化的相互关联性。实际上它比你描述的还要困难。当您尝试部署经过测试的解决方案的某些部分时,您根本无法知道系统的行为方式。为什么要测试它?

    我能看到的唯一明智的解决方案是拥有一个展示新功能的沙盒环境。但是,仅将您的测试环境保留用于测试将要上线的东西。因此,在您的示例中,一两个功能正在测试中,准备签收以进行生产,而其他功能则被锁定在沙箱中。

    这导致了下一个问题,即管理您的源代码。我没有看到任何明智的策略来管理代码库中任意包含的功能。即使在我所知道的最灵活的系统 Perforce 下,当您尝试将内容移入和移出时,任何分支策略都需要在合并时进行糟糕的解析。

    我已经看到了这种情况,相信我,它变得非常丑陋。

    我建议你想出一个更好的解决方案。与您的客户交谈并改变做事的方式。这对你会更好,从长远来看对他们也更好。

    【讨论】:

    • +1 用于简洁地确定核心问题:“您正在测试一件事,并部署另一件事。”
    • +1 公司的糟糕计划或客户的错误要求(可能是后者 ;-))
    【解决方案2】:

    一种解决方案可能是使用 VCS 提供的廉价版本分支,例如 Git 或 Mercurial。该项目将包含许多功能分支,用于开发所述功能并构建分支,其中将合并功能分支并进行临时修复。当构建分支准备好进行测试时,它会被测试、修复(如果需要),然后将构建分支运送到生产平台。 当特性被验证后,构建分支可以合并到剩余的特性分支中,这样开发中的分支就可以整合“官方”的变化。 总而言之,该应用程序是根据需要从现有功能分支定制构建的。

    【讨论】:

      【解决方案3】:

      在代码级别管理此问题的一种合理合理的方法是将每个功能隔离到一个插件中。然后您可以通过简单地启用或禁用相应的插件来按需添加/删除功能。

      但是这种解决方案有一定的成本:

      1. 是时候为您的应用开发和测试插件引擎了

      2. 您需要测试将要部署的每个插件配置(启用的插件集及其版本)。否则存在此特定设置不兼容的风险,最终用户将首先看到由此导致的崩溃、数据丢失或其他一些恐怖情况

      3. 额外的时间来编写插件,使它们相互之间的依赖最小。

      通常只有当您有许多具有不同需求的客户时才值得这样做。在您的情况下,我建议向您的客户解释单独启用功能的成本,看看他们是否真的需要它。他们很可能不会

      【讨论】:

        猜你喜欢
        • 2022-10-25
        • 2012-10-26
        • 2018-07-24
        • 2012-07-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-20
        相关资源
        最近更新 更多