我在开发第一个网站时注意到,数据库列,连接选项和各种其他组件中的最小变化会导致网站失败,直到我纠正可能需要或可能不需要很多时间的问题(祸患)是我)。我想知道我现在可以采取哪些措施来防止这些令人头疼的事情,因为我推迟了网站的发布以保持升级。一旦我完成了我希望看到的变化,我知道我不会真的完成,但在某些时候我必须继续下一阶段。
是的,我知道可能没有一个好的解决方案,最终自我纠正设计比此时的价值更麻烦。但如果有的话 灰胡子根据自己使用WebDev的经验提供任何技巧,特别是LAMP堆栈,我将非常感激。
具体来说,我想知道在客户信息处于活动状态后修改数据库和网站代码时应注意什么,以防止错误,以及如何推出更改。
编辑1:
是的,所以答案似乎是我需要将实时网站复制到我的测试环境。我正在寻找一些已经建议的开发解决方案。定期备份是至关重要的,但我只能看到插入新列和修改查询作为错误排序表等的原因。 “这是一个优秀的程序员和努力测试的地方派上用场”,角落里有人说。在研究提出的解决方案时,我同时欢迎所有其他人。在测试期间,即时创建“实时网站”的实时副本。
答案 0 :(得分:1)
开始使用一些(可能是简化的)版本管理:
答案 1 :(得分:1)
以上答案都非常有效,最后,它们代表了您的目标解决方案。
与此同时,您可能已经为您的网站做了很多工作,即使逐步迁移到这些做法。
为了做到这一点,我建议您安装PHPUnit(或任何Unit附带您使用的网络语言)。还有“图形”版本,如VisualPHPUnit,如果你更喜欢它的话。
这些工具不是永久的解决方案。实际上,您应该将添加目标指向您的永久解决方案,即设置开发服务器等。 但是,即使是临时解决方案,它们也可以帮助您为软件组件提供相当稳定的质量,并避免在实时服务器上进行编码时出现80-90%的意外情况。
您可以在单独的目录中开发代码并在将其移至生产环境之前对其进行测试。您可以创建模拟对象,您的代码可以自由地与之交互,而不必担心会产生影响。您的测试可能会加载自己的备用配置,因此它们可以在第二个复制数据库上运行。 更进一步,您可以将您的网站包含在测试中。有几个应用程序,如Selenium,允许您自动化和测试您的生产网站,以便您可以可靠地知道您的最新更改不会对您的网站语义产生负面影响。
简而言之,虽然你当然应该以适当的开发环境为目标,但即使在今天,只需几个小时的学习,你就可以做得非常好。