【问题标题】:Upgrading a PHP/MYSQL application?升级 PHP/MYSQL 应用程序?
【发布时间】:2010-08-18 13:54:52
【问题描述】:

我正在寻找有关如何管理自制 php/mysql 应用程序的 升级 过程本身的输入。意思是,如果我们的生产服务器上有一个“稳定”版本的 php/mysql 应用程序,我们现在想将它升级到我们工作的下一个版本 - 我们如何优雅地做到这一点?我应该实施哪些做法?

我本来打算做的只是

  1. 要求开发人员停止 在所有稳定性之后签入代码 / 功能测试已完成

  2. 使应用程序脱机***(问:我应该如何防止 ppl 登录/访问公共页面?最佳实践?)但允许通过秘密登录页面/url 访问开发人员

  3. 登录生产服务器并查看最新版本 本地***
  4. 让开发人员/测试人员通过秘密访问页面/url***测试他们的代码
  5. 完成后,我们通过删除此秘密访问页面/url、删除站点维护页面并恢复对所有人的访问来恢复对所有人的访问。

***注意:执行此操作的一种简单方法是将 /myapp/ 重命名为 /myapp.old/ 并将新应用程序版本放入 /myapp.new/ 开发人员将访问 /myapp.new/,测试他们满意,然后在我们完成后,我们会将其重命名为 /myapp/(这只是基本想法)

【问题讨论】:

    标签: php process upgrade recommendation-engine


    【解决方案1】:

    这是一个很大的问题,而且在很多方面都取决于您的具体项目。但这里有一些需要考虑的做法:

    1. 在您的代码中放入大量 cmets。现在看起来完全合乎逻辑的事情会在一两年后回去进行更改时感到困惑。

    2. 使用自己的数据库维护站点的开发版本。您可以在发布到生产站点之前测试对站点的更改。

    3. 使用 PHP 框架(例如 CakePHP、CodeIgniter 等)。如果您的项目进展顺利,这可能很难做到。但它将帮助您以一种易于更新的方式编写代码,并且将包含许多您不必从头开始编写的稳定、成熟的功能。使用这些框架之一(并遵循其最佳实践)可能是初学者学习思考编写易于更新的模块化代码的最佳方式。这也将鼓励您以与您的网站结构一致的方式开发您的数据库。

    4. 编写测试(框架应该可以帮助您)以编程方式检查您的代码是否存在错误。

    5. 使用版本控制系统,例如 Subversion 或 Git。这使您可以跟踪对网站的更改,并在您意识到它们有问题时轻松回滚更改。

    【讨论】:

    • 我要补充一点 - 使用像 Phing 这样的自动构建工具来启用可重复的、不干涉的构建(减少犯错的机会,并让问题溜到生产中)。走这条路的另一个好处是您可以将单元测试集成到您的构建中。测试失败,您不会将构建升级到生产环境。
    【解决方案2】:

    全面的单元测试覆盖率将非常有帮助,小型、高内聚、低耦合的类也是如此。除了单元测试之外,集成级别的良好覆盖率也很有价值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-24
      • 1970-01-01
      • 2016-07-26
      • 1970-01-01
      • 1970-01-01
      • 2015-10-22
      • 2019-02-06
      • 2015-05-12
      相关资源
      最近更新 更多