【鱼皮的打工日记】20220610
今天又是心情无比复杂的一天,为什么复杂?请接着往下看。
昨天 2 : 00 准时睡觉,然后今天 9 : 30 起床干活。今天的工作安排的满满的,整个白天也都是一直处于赶鸭子上架的状态:
1. 一个需求 / Bug 处理完就得赶紧去处理另一个
2. 一个需求 / Bug 还没处理完就又有人在群里 @ 你了
所以白天的工作还是非常紧张且高效的,甚至占用了午休时间来处理工作上的问题。
其中一个让我比较头疼的问题是【核对数据】。我开发好了一个离线分析数据的脚本,放到大数据计算引擎上去执行,但由于数据量无比巨大且计算逻辑复杂,哪怕千核 CPU、万 G 内存来计算,都要等几个小时才能得到测试数据,才能将数据交给需求方的同学来测试验证。他们从测试结果数据中找到问题后呢,我又得去从结果集中抽出这部分数据去分析、然后查阅代码,找到问题后还得再重新执行一遍计算,结果又出现了新的 Bug。。。如此往复,消耗了大量的时间(且绝大多数时间在等待),并且浪费了大量的计算资源用来测试。我不得不感慨,调试的便捷度真的是刚需啊!
于是,我思考了几种解决方案,比如:
1. 计算测试数据时,传入时间范围和过滤条件,只取部分数据进行验证,先 case by case 地解决问题、再逐步放大验证
2. 因为该脚本是新增字段,不影响老字段,所以可以直接上线后再改 Bug,这样省去了测试任务浪费的计算资源
3. 因为是新增的计算逻辑,直接对线上已经计算好的结果数据集进行二次运算和调试,省去了大量的前置计算逻辑
带着这几个解决方案,下午我把这个问题抛给了 Leader,想征询下他的建议。最后 Leader 建议我在脚本程序的入口处多提供一些可以由外部(执行程序者)传入的参数,以此来控制程序;并且批准了我直接上线的行为(毕竟资源太紧张了)。OK,方案定好了,下周来了就实操一下~
回到开头的话题,为啥会心情复杂呢?有两件事,首先是我注意到,今天开周会的时候,人数比上周更少了。。。下午和同事交流后,果然,又有同事要毕业了,开始刷 LeetCode 了。唉,好歹也是曾经一起 “战斗” 过的朋友,结果因为个疫情,连最后一面都没见到。在寒冬下,我们还是要时刻准备着,踏实工作之余,努力提升自己,不要让自己和公司绑定了。
第二件事是晚上我跟 Leader 交流,问下他这段时间对我工作的看法和建议。Leader 人很好,也是有话直说的类型,给我的建议如下:
1. 保证即时的联系和对业务的关注度。因为现在个人负责的业务越来越多,也多了很多周期性的工作(比如我新负责了几个每天生成的数据底表),所以要比以前更有责任感。除了每天养成关注、巡检业务的习惯外,当业务出了问题时要能够第一时间挺身而出。Leader 还跟我讲了他自己的故事:要是你手底下的人出了问题联系不上也就罢了,但身为 Leader,一定要能被联系到,并且即时推动问题的解决。我从中听出了团队负责人的心酸与责任感吧,自己确实需要在这个方面做到更好。
2. 思考更多、更全面的兜底措施。为了减少系统的风险、避免自己放假时被叫去工作、以及出了问题能快速恢复,我们在设计系统时就要考虑到出问题后如何快速处理。比如重试机制、做好备份等等。并且可以适当将系统设计的更开放一些,比如上面提到的用参数控制要计算的数据范围,如果前面算成功了,重试时就只算后面即可。
从这两点中,我总结出了一个关键词:掌控。作为业务负责人,要做到时刻掌控业务,让问题逃不出你的手掌心。具体的实现方式就是:日常主动关注业务、养成习惯 + 提供一个 24 小时畅通的消息提醒渠道 + 设计系统时将风险评估和防范纳入思考范围。
最后,Leader 还鼓励我说,虽然公司的晋级制度调整了,但是没关系,从你做视频这件事能看出来,你的总结能力和临场发挥能力还是不错的;工作也很踏实肯干(Leader 表示看过我加班写 SQL 那个视频),下半年晋级应该是稳的。
感谢老大的鼓励,我的确又恢复了一些斗志,并且意识到:以后不能再水视频、吹牛皮了,毕竟 Leader 很有可能在关注列表里窥视着我!
心情复杂,不知不觉竟写了 1500 字了,朋友们加油!我再学会儿习,今天 1 : 30 睡觉,明天全天整理 + 原创星球资料,争取这两天搞定。
