虫子是你最好的朋友

您打开电子邮件,浏览一些工作消息,然后注意到有关错误的经典电子邮件。

RuntimeError: Your app is terrible
app/controller/page:17 - what is
config/route/blah:24 - this I
bin/app:4 - can't even

看起来...很奇怪。 错误消息和堆栈跟踪看起来只有些许熟悉。 还有一点判断力。

那时您会因为烦恼甚至焦虑而被原谅。

但是,该错误及其兄弟姐妹实际上是您最好的伙伴。 这不仅是一种“永远看到生活的美好一面”的有力的精神体操方式,还有很多内心的理由相信这一点。

“不过,有很多理由拒绝这一主张!” 是的,让我们探索其中的一些。

一个简单的错误就是虫子的干扰性。 他们像一个粗鲁的派对嘉宾一样自发地来。 他们吐口水,打破灯,然后脾气暴躁地坐在舞池中间。 您必须放弃正在做的事情才能甚至解决他们的一般情况。

当然,如果您有一个或两个星期的计划工作,新的工作且需要您的仔细注意,那么您最后想要的就是一个错误。

还是您不需要的中断 ,不是错误本身? 中断当然有很多隐性成本 。 但是,如果您将工具和流程设置为不打扰而是缓冲通知,以便按可预测的时间表处理通知,那么拒绝索赔的理由是否仍然成立?

但是,还有其他理由拒绝索赔吗? 即使您缓冲了错误,但仍有太多错误! 那只是我们所能注意到的。 我们没有提前弄清的体验中的紧急需求又如何呢?

当然,如果您的错误队列似乎只会增加,那么错误就是您最后要庆祝的事情。

还是资源限制让您失望了? 我认为我们当中没有很多人喜欢做只会不断增长,令人沮丧的清单。 而且由于所有权变更,需求变更,或者只是代码/测试未预见到每一个极端情况,我们可能要做的工作往往比实际完成的还要多。

但是, 我们已经学到了许多有关处理繁忙工作队列的有用信息。 就像选择受限制且可用的媒体一样,If-Then规划和每日优先排序技术。

有很多方法可以解决需求不确定性。 它不是完美的,但是有了更多的迭代,更好的工具以及更清晰的沟通,我们可以走得很远。

但是,嘿,这甚至还不是关于bug的绝对最糟糕的部分。 他们可能使我们的客户和我们自己付出高昂的代价! 他们可以在最坏的时候摧毁生命!

当然,我们不会珍惜错误可能导致大量破坏的错误。

还是它-不,实际上,这是一个有效的问题,哈哈。 虫子可能会使您付出代价,它们会严重伤害您和其他人。

但是,世界并不是一口气。 您不仅被单手处理。 在许多情况下,集体“我们”从过去的错误中学习。 从个人的角度来看,巨大的失败可以带来巨大的教育和回报。 从元文明的角度看,它可以消除机构的脆弱性。 战斗伤痕等。 嘿,这不是完美的,但不是全部都是负面的!

同样,没有什么阻止您在宇宙中发现错误之前发现它们 ! 例如,查看开放源代码数据库项目的模拟和测试可能会使测试人员羡慕不已-令人惊讶的是,您实际上可以提前多长时间模拟问题,或者通过使用正式方法系统地根除问题。

尽管错误很友好,但它们不仅仅是“并非全部坏”。

首先,错误是难题。 就是这样 他们对根本原因有模糊的线索,而线索则由信息痕迹和对周围世界的因果关系组成。 他们甚至奖励纯粹的发现,更不用说掌握修补程序了!

想象一下您上一次发现错误的确切时间。 当我记得上周的几个例子时,我记得我面带微笑,说:“哦!” 非常令人满意。

并非所有人都喜欢拼图。 他们的思考成本很高,需要时间和精力。 但是我仍然想像,我们中的很大一部分人会体会到困难的事情,这些事情最终会给我们带来情感上的回报。 迟来的喜悦。

虫子的另一大优点是它们可以锻炼我们大脑的许多有趣部分。 要找出错误,您需要开发和练习代码考古,仿真和调试技能,以及其他技能。 像git blamegit bisect ,使用Web调试代理或查询访问日志。

但是,除此之外,错误还会锻炼我们的概率决策技巧。 例如,如果您的Web应用程序中只有一个区域处理用户上传的CSV文件,则表明新错误与导入有关的指示会增加您应归咎于Web应用程序该区域的可能性(甚至在完全确定错误来源之前) )。 您还可以通过快速排除可能的原因来进行根本原因查找,最好是每次都将假设空间减半。 有时它有助于查询一些事件计数的直方图,以了解什么函数调用最常发生以及在什么情况下发生。

当您发现错误时,您通常会对可能或不可能发生的各种情况有背景知识。 如果您还没有一个,在解决了一些错误之后,您还可以确定应用程序的哪些部分风险更高。 有一个反馈循环,使您对系统的内在熟悉度提高,这种熟悉度可以帮助您了解如何编写更好的测试,如何构建更好的元工具以及如何减少发现和开发时间。

只是有这么多的开放空间来完善这种调查艺术! 而且,您基本上是通过锻炼这种艺术来积累知识财富。 财富使您可以更深入地了解如何更好地构建未来功能和整个项目。

除此之外,它们还迫使我们采取健康的怀疑态度。 有一定程度的责任追究我们的缺陷,让其他知识界都渴望获得反馈。 您能想象当今世界上的学术科学家从宇宙滴滴反馈中得到滴滴滴答吗? 我们很高兴获得我们甚至都不知道正在运行的实验的带注释的结果

我认为错误对于入职甚至很有用。 有什么比弄清楚为什么它的行为不正常的真正了解代码库更好的方法呢? 你不仅要引导项目,并了解它是如何的表现,你必须了解它应该如何表现,以及如何在它夺取控制,因此您可以解压或模拟的问题真正了解它。 它比一个小的(意义不大的)功能要难得多,并且减轻别人的痛苦是您的第一项任务,这会让您更加满意。

人们想帮助人们,吓坏了让他们!

持怀疑态度的一个原因是,如果您没有选择正确级别的错误,您只是在要求人们旋转轮子几天(希望从来没有几周!),但是与熟悉的人一起整理了一些错误,错误队列可能是方便的入门工具。

无论如何,朋友们不想让你停滞不前,他们想让你建立起来,看到你成长。 虫子不是人,但我会邀请他们参加聚会。 也许我会掩盖打孔碗并设置它们,以免惹恼其他所有人。 但是我会听他们说的。

最初发布于 kiltau.com

From: https://hackernoon.com/bugs-are-your-best-friends-b1dc226edecd

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值