vue中生产模式和调试模式_为什么在生产中进行调试是如此诱人?

vue中生产模式和调试模式

生产调试

为什么在生产中进行调试是如此诱人?

在我的第一份工作中,我要做的任务之一是修复一个错误,该错误过去在非常复杂的生产系统中有时会发生。 那很简单! - 我想。 我将在开发环境中重现同样的情况,找到虚线,实施快速修复,然后完成! 但是,事实证明,无法复制与生产中完全相同的场景-因此一段时间后,我放弃了这个想法。 我被迫花费数天时间分析日志并试图关联许多不同的事件,以弄清可能发生的事情。 很快,我意识到这就像在大海捞针中一样乏味。 经过几天没有结果的结果,我得出的结论是,我需要在这里和那里添加更多的日志记录,然后等待几天甚至几个月,以查看该错误是否再次发生。 然后,我认为,与开发应用程序时使用的复杂工具相比,在生产中寻找错误某种程度上是粗糙的。 您正在实施一项新功能,并且看到服务返回的结果不是您所期望的? 您只需放置几个断点,然后单击“调试”按钮即可! 片刻之后,您确切地知道发生了什么。 在生产环境中做同样的事情很棒吗?

为什么在生产中进行调试是如此困难?

等一会儿! –您可能已经想到了。 但是我们不是在大多数现代IDE中都具有远程调试功能吗? 我们不能像在本地环境中那样仅连接到正在运行的生产应用程序并对其进行调试吗? 尽管有可能,但另一个问题出现了:我们的大多数业务应用程序每秒处理许多请求。 当对应用程序进行远程调试时,没有简单的方法可以控制在任何地方触发的断点。 您可以想象,当我们决定调试它时,我们不想阻止所有用户使用我们的应用程序。 很多时候,我们也不能仅仅强迫我们的应用程序重现昨天发生的错误-有时唯一的方法就是等待直到它再次出现在我们的一个用户身上。 因此,在生产环境中保持远程调试会话而无须严格控制断点的触发方式,就像在森林中放置地雷并邀请我们的用户穿越地雷一样。

最重要的是–一种更安全的方式

FusionReactor是一个应用程序性能监视器,具有许多高级功能,您通常不会在监视解决方案中找到这些功能。 生产调试器是其中之一,该调试器旨在允许您从生产运行时环境中获取底层调试信息。

使用某些传统的调试器时,您将面临的主要问题之一是,一旦设置了断点,它将对跨越代码点的任何线程触发。 FusionReactor通过采用一系列控制断点触发方式的技术来克服这一问题。 例如,它可以限制给定断点将触发的次数(线程),从而解决了影响太多用户的问题。 需要更多控制方式吗? 您甚至可以配置一个断点,以从特定的IP地址(会话)向用户触发,或者在特定变量与值匹配或发生特定异常时触发。 但是,如果在我们团队中没人在看的夜晚触发断点怎么办? FusionReactor允许您定义线程暂停超时,因此,如果您在特定时间内不截取暂停的线程,则调试器将释放锁定并允许线程继续执行。 当与线程限制一起使用时,这可以将可能的影响减少到仅一个线程,并且仅持续n秒。

另一个好处是,FusionReactor可以在触发触发器时发送带有堆栈跟踪和变量的电子邮件。 这为您提供了一种非常灵活,简便的方式来获取大量信息的通知,从而使调试比以往更加容易。

生产中的调试不必太麻烦。 FusionReactor带有完全集成的IDE样式的调试器,该调试器可直接在您的浏览器中运行-无需安装其他胖客户端即可启动远程调试。 一切都是内置的,随时可以使用。

翻译自: https://www.javacodegeeks.com/2018/05/why-debugging-in-production-is-so-tempting.html

vue中生产模式和调试模式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值