当前位置: 首页 > article >正文

通宵修bug

前两个月的某天凌晨,我司全新的一个营销工具,在全国如期上线。然而整个发布过程并非一帆风顺,在线上环境全量发布后,有同事观测到他所负责模块的监控曲线有异常!监控曲线在发布的时刻近乎于直线下跌。
经过初步排查,故障影响是:一部分新用户无法使用营销优惠~ 影响面非常大,所幸在凌晨的业务低峰期,实际影响有限,但是需要快速修复!不然等天亮用户请求量上来了,故障影响和定级就更大了!
目前接近凌晨4 点,时间很紧张!虽然这部分内容并非我负责,但我是当天的现场值班人,必须上!肝!
屎海无涯
我喝了一口红牛,打开电脑就扎进了陌生代码的汪洋大海中……
看着看着,我察觉到味道不对劲。我觉得这部分代码不是汪洋大海,而是一片屎海…… 代码堆砌如屎山,单个方法竟超过500行;嵌套的if else结构深不可测;日志更是完全缺失;职责不但不单一,反而极度混乱。总之,整个代码简直如同一团乱麻,排查难度极大。
四五个同事一起在排查代码,虽然他们负责过这部分代码,但是大家都十分挠头,找不到 bug 在哪。
当局者迷,旁观者清。经过了30分钟的细致分析,终于,我率先找到了 bug 原因。激动地心颤抖的手,我开了 5 分钟的 bug 发布会,通报了 bug 根因和修复方案。

破案了!
确定 bug 根因后,其他人默默去休息了……
接下来我负责修 bug、测试、打包、发版、验证…… 不知不觉,天空破晓,一直搞到早上 8 点多…… 在线上完成验证,监控曲线恢复正常!bug 修复完成!

bug根因
由于公司代码保密,所以我使用伪代码解释。
业务逻辑是遍历所有的优惠活动,若任意一个优惠活动需要限制新用户使用,那么就需要去查询当前用户是否新用户。
bug 代码如下! (实际的屎山代码,比这部分代码要复杂得多!)


http://www.kler.cn/a/382890.html

相关文章:

  • 【简信CRM-注册安全分析报告】
  • Transformer究竟是什么?预训练又指什么?BERT
  • 安装和运行开发微信小程序
  • 线程池执行流程
  • 将Beyond Compare添加到右键菜单中
  • 从传统服务器到虚拟化:虚拟机 VM 如何改变计算游戏规则?
  • 空间解析几何6:空间圆柱体的离散化表示【附MATLAB代码】
  • 封装axios、环境变量、api解耦、解决跨域、全局组件注入
  • 根据问题现象、用户操作场景及日志打印去排查C++软件问题,必要时尝试去复现问题
  • 修改elementUI等UI组件样式的5种方法总结,哪些情况需要使用/deep/, :deep()等方式来穿透方法大全
  • 职业院校关于大数据、云计算和物联网传感器技术的结合与应用探讨
  • Ansys Zemax | 手机镜头设计 - 第 4 部分:用LS-DYNA进行冲击性能分析
  • 淘宝商品详情API接口Java GET调用指南
  • 【鉴权】深入解析OAuth 2.0:访问令牌与刷新令牌的安全管理
  • Vue Router进阶详解
  • andrular输入框input监听值传递
  • OpenSSL 生成根证书、中间证书和网站证书
  • 1分钟解决Excel打开CSV文件出现乱码问题
  • B站的视频下载的视频是mkv格式,怎么通过ffimage转化为mp4的格式
  • 【Python】Bottle:轻量Web框架
  • python通过pyarmor库保护源代码
  • 从零记录搭建一个干净的mybatis环境
  • 爬虫-------字体反爬
  • Google Guava 发布订阅模式/生产消费者模式 使用详情
  • 2024 ICPC National Invitational Collegiate Programming Contest, Wuhan Site
  • 套利定理