打印

公司被薅了2.6W,出bug的代码还是我写的……

[复制链接]
46|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
科叼|  楼主 | 2024-12-25 17:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
​事情经过
前两天线上发生了结算的漏洞,这里的代码是我写的,出问题的时候是周日晚上,那天大领导打电话过来问我具体的损失情况。

最后查出来是有两个人逮到了系统漏洞,一共 87 笔订单出现了多结算的问题,薅了大概 2.6 w,有个人当时已经跑了,还有个账户里面只有几百块钱。

发现问题后紧急停止**,其他的明天上班再处理。

但我当晚已经无法入睡了,压力非常非常大。

普通开发和项目负责人最大的区别,可能是后者要承担风险和责任,但这个项目就我一个开发,我要同时兼顾两种角色。

周一早上去上班,前一天晚上也没睡,精神状态可想而知,浑浑噩噩的,先把问题和场景分析清楚,最终发现是用户在加价的时候回写了订单状态,导致重复结算。紧急加上各种校验,然后把所有相关的接口全部加强校验。

代码还没写完,就被拉去会议室开批斗会了,直属领导和大领导怼着我一顿骂,诸如什么高级开发、别人犯这种错误早滚蛋了,我还不识趣的解释了下具体原因,结果被骂的更凶了。

所以记住了,以后犯错了被骂,不要说为什么出错,只要认错,再加上解决时间。

心态更差了,压力可想而知,花了一天干到凌晨,修复上线。

结果过了几天,又出现重复问题了。



仔细一看真是倒了血霉,底层架构分布式锁写的有问题,没锁住请求,在 finally 用了 redission 的 forceunlock,导致并发场景下当前线程的锁被别的线程释放了。

然后就有了第二次批斗会,这次简短扼要得多,大致就说了两句,今天必须修复完成,再出问题自己提离职申请。

回到工位先修好了分布式锁,又在资金流水加了道数据库锁。又是干到凌晨,加上中间还有个比较紧急的需求,有几次干到了凌晨一两天。

到今天事情过去了快一周。

回想那几天的经历,晚上基本上没睡觉,压力非常大,到凌晨三四点都是常态,对身体和精神都是非常强烈的折磨,辞职的念头此起彼伏。对 bug 也有了 PTSD。

昨天晚上商务同事告诉我已经追回了 1.5w,预计可以追回 2.4w,后面的分批追回。

真心感谢商务同事,也给别人造成了不少麻烦。

心理感悟
不知道你如果遇到我经历的情况有什么感受。希望你不要有我这么大的压力。不过这次压力也让我更深刻的体会到了一些事。

就一份工作而已
就一份工作而已,大不了辞职不干了嘛,不要给自己那么大的压力,压垮了身体,公司也不会负责,受伤的还是自己。

人得自私一点,多为自己想想,少点集体荣誉感责任心什么的,任何一份工作都是自己成长的垫脚石。

要成为工作的主人,不要反被工作拿捏了。

我之前觉得公司给我工资了,我得好好为它卖命。

现在看看自己这些年写的系统,今年已经给公司创造了 600w+ 的GMV,尽管还有其他商务、运营同事共同点功劳,但我的工资是远远远远不及这个的,从这个角度看,公司应该感谢我这么多年辛苦工作。

<顺便提一句,技术大厂,前后端测试缺人,base多地,年前要求低一些,待遇等给的还可以,感兴趣可以试试→网申https://jinshuju.net/f/o38ijj>

最重要***是身体、亲人和朋友
人生说长不长,说短不短。大家都是几十年时间,身外之物,生不带来,死不带走。

自己的身体健康才是最重要的,不要等身体垮了再追悔莫及,很多健康问题是无法恢复只能缓解的,医学没我们想的那么发达。

其次是家人、伴侣、朋友。想想自己出生和去世的时候,身边会有哪些人?这时候工作在哪里呢?

我以前对家人很不耐烦,现在我对他们有耐心了很多,连老婆都觉得我 “好欺负” 了哈哈哈,或许说再多都不会有用,直到自己刻骨铭心的经历一波。

业务、公司、地球没了你照样转,但是亲人、爱人、朋友没了你,他们会很伤心。

心态非常重要
出天大的 bug,业务也不会凉,公司也不会倒闭,天也不会塌,地球不会停止自转,太阳不会熄灭,更重要的是,写 bug 的人不会死。

极大的压力、焦虑并不会让我把事情做的更好,像我这种搞的几晚上睡不了的人,再去修 bug,效率真不如美美睡一觉再去。

现在回过头看,自己那么大压力完全是自己给的,像是自残。人得对自己好一点,不要给自己那么大的压力。

还有领导说的什么自己提离职、这么低级的错误等等骂人的话,别太往心里去,他也是气头上找个东西宣泄下,或者是想告诉你这很重要必须搞好,这是一种情绪的表达。

你别管他说什么,你现在就是他的出气筒,等他骂完你只要表达你必须解决点问题的态度和解决的时间点就行了。

给他点情绪价值。领导也有更大的领导要汇报内容,到时候指不定他被骂的更凶呢哈哈。

付出行动
纠正完认知和心态,还是要回归到行动上,如何避免类似的情况再发生,从失败中学习。

像这次结算出问题后,我真正理解了结算所涉及的各种细节和要点,以后再写的任何项目,结算都不可能再出问题了。

感兴趣的同学可以翻翻我前两篇动态,有关于结算系统设计的文档,后面我还会模拟订单场景,结合建表语句做个详细的结算架构设计。

对我来说,事情解决才会让我安心。

就像我必须把系统里涉及结算的场景、代码重新梳理清楚,搞明白了,保证下次不可能再出问题了,我才会真正的没有压力。

我希望你知道这很重要,只是把心态调整好而不去真正的解决问题,下次还是会出问题,甚至会有不知道什么时候会出问题的恐惧。

解决问题需要付出精力和行动,这可能更难,但这才是人成长和进步的原因。

加油,共勉。

——转自作者:小兵张健

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

124

主题

133

帖子

1

粉丝