Debugging 在一个可以';不能在开发环境中复制吗?
我有两个环境。一个是发展,一个是生产。当将代码从开发阶段合并到生产阶段时,不在开发阶段的bug就会出现,因此很难找出问题所在。在这种情况下,有没有关于如何修复bug的建议?另外,在prod中出现不在dev中的bug是正常的吗?在生产中出现开发中没有的bug很常见,因为生产环境在硬件、网络、并发性、用户数量等方面与开发环境不同。我不想说“正常”,因为经过合理测试的应用程序通常不会有重大的生产缺陷 诊断仅限生产的bug最常见的方法是有足够的日志记录,以便在bug发生时了解应用程序的状态。当然,诊断错误的正确方法完全取决于错误 最好完全避免生产缺陷。一些策略:Debugging 在一个可以';不能在开发环境中复制吗?,debugging,testing,web,deployment,Debugging,Testing,Web,Deployment,我有两个环境。一个是发展,一个是生产。当将代码从开发阶段合并到生产阶段时,不在开发阶段的bug就会出现,因此很难找出问题所在。在这种情况下,有没有关于如何修复bug的建议?另外,在prod中出现不在dev中的bug是正常的吗?在生产中出现开发中没有的bug很常见,因为生产环境在硬件、网络、并发性、用户数量等方面与开发环境不同。我不想说“正常”,因为经过合理测试的应用程序通常不会有重大的生产缺陷 诊断仅限生产的bug最常见的方法是有足够的日志记录,以便在bug发生时了解应用程序的状态。当然,诊断错
- 将单一版本的代码部署到所有环境,以便所有测试都在部署到生产环境的同一版本的代码上完成。如果单个版本需要在不同的环境中执行不同的操作,那么可以通过在不同的环境(而不是代码)中进行配置和更改配置(环境变量、配置文件、数据库数据等)来实现
- 使开发和生产环境尽可能相似:使用相同或相似的操作系统,使用相同版本的语言运行库和库等。一些项目在虚拟机上开发,以便它们在开发和生产中具有完全相同的环境
- 完全自动化部署,因此不存在手动错误引入bug的机会
- 部署到类似于生产的暂存环境,并在部署到生产之前在那里进行测试
- 进行金丝雀式部署,以便在影响所有用户之前检测到仅在生产环境中漏掉的bug
如果你在生产中有一个bug。首先确保从生产环境中刷新预生产。在预生产阶段调试问题应该容易得多。通过“合并”,您的意思是生产代码与开发代码在某种程度上不同吗?Dave,是的,这就是我的意思。我在回答中添加了一个非常重要的点。