译者按: 等待用户反馈BUG,一切都晚了!实时监控线上应用才是王道。编程
原文: Why relying on your users to report errors is the dumbest thing you’ll ever do浏览器
译者: Fundebug服务器
为了保证可读性,本文采用意译而非直译。另外,本文版权归原做者全部,翻译仅用于学习。并发
咱们热爱coding。工具
当咱们coding的时候,就如同从零建造一栋大楼。新的特性、新的功能、绝佳的设计都在每一次更新后被用户所使用,期待他们的喜好和赞美。这样的一个过程让咱们感到心灵上的慰藉和拥有为数很少的成就感。学习
然而,现实并无想象中美好。操作系统
若是debug是移除bug的流程,那么编程就必定是将bug放进去的流程。翻译
软件工程师将大量时间花在了其它事情上。他们须要参加各类会议、讨论需求、制定计划、将现有的冗余代码重构,以及还有一项花费时间不少的工做:修复bug。debug
我尚未遇到过一位喜欢在代码中去找bug的工程师,大概由于查找和复现一个bug每每要花费不少时间。设计
一直以来,debug就像大海捞针同样。他们须要亲自去发现问题的缘由而后寻找解法,而不是依赖于用户的截屏反馈。
用户的截屏并不能告诉你足够的信息,每每你会问更多。
你用的哪一个浏览器,什么版本,操做系统是哪一个,能够具体一点告诉我刚刚你是怎么操做的吗,你以前在哪一个页面,你是怎么到这个页面的?
就算问了用户这么多问题,也不必定能解决问题。
Debug老是要花不少时间,然而仍是一头雾水。
不少开发团队依然依靠用户反馈来改进产品,这实际上是很荒谬的。
在快餐连锁店,客户用餐完毕以后,须要本身将没吃完的食物和用过的餐巾纸扔到垃圾桶。快餐店的食物可能一点也很差吃,客户没吃几口就扔到垃圾桶而后直接走掉。除非客户真的是一个爱抱怨的人并且刚好有时间,才会如实评价。不然,你只会认为一个客户吃完饭满意的离开了。
然而,他不再会来这里吃了!
一些开发者会这么认为:若是没有用户反馈问题,那就表明咱们的产品棒棒哒,对不对?认为“若是用户使用产品遇到问题,用户就会反馈”是比较局限的。最终你会发现只有1%的用户会反馈问题,然而事实上多得多。
开发者依靠颇有限的信息去尝试debug一个问题,每每不能解决。
你开发的软件并无你想象的那么完美!
一个在大型线上零售店工做的朋友跟我聊过他们解决公司线上订单系统的一个重大问题的故事。他们通过好几天的排查,都没有发现问题所在。最后决定使用一个专用工具来监控和诊断应用错误。
最终的发现使人惊恐!
八个服务器中的一个内存不足而后报错,致使用户的订单流程失败。也就是说:“每八个用户中有一个收到影响”。
发现和解决这个问题使得一个月的销售额提升了2万美圆。过后评估发现总共影响了5000名用户,可是只收到2个用户反馈。虽然解决了bug你们都很开心,但这个错误致使了10万美圆损失。
你能够坐在电脑面前盯着错误日志流。当你休息的时候,能够雇一个小伙伴这么作。或则,当异常出现的时候,给本身发报警邮件(貌似是个不错的主意)。直到你真的这么作了,你就不会这么想了!
你须要意识到:对于小的我的项目,一有错误就经过邮件报警还能够。但若是业务量起来了,访问量打了,事情就会变得一团糟:
你会开始忽略这些邮件,甚至把它们归类到一个单独的文件夹而后发现无从下手而不多去碰。毕竟,从几千封邮件中找到严重的问题并解决很不容易。
ELMAH (Error Logging Modules and Handlers) 是一个错误记录服务。它能够动态地加入到一个ASP.NET项目中,而不须要从新编译或则从新部署。ELMAH不支持全部的程序语言,他提供的功能也有点局限。ELMAH适用于小型的我的项目。
若是你想认真对待应用BUG,可使用一个专业的BUG监控服务,好比国外的Raygun(或则咱们Fundebug)。一个专业的BUG监控服务能够帮你:
若是你使用简单的方案(直接邮件报警),那么你须要停下手头的工做,花费两三个小时去复现一个bug。这是很是浪费时间,很是低效的作法!若是一个团队注重快速迭代,那么他们会愿意为开发者节省花费的debug上的时间,去开发产品的新功能、新特性。
咱们但愿技术实现自动修复软件BUG。不过,软件自愈依然还有一段距离。你可使用一些错误监控服务来使得整个debug更加简单和高效。
<!-- 现在持续集成逐渐被普遍使用,你能够几分钟内快速定位bug、修复bug并发布到生产环境,而不须要等待几周一度的产品更新。 -->
在你的用户发现问题以前发现,而且不要单纯依赖用户反馈问题!
版权声明:
转载时请注明做者Fundebug以及本文地址:
https://blog.fundebug.com/2017/08/30/rely-on-users--to-report-error-is-not-good/