快手实习中期:成为导师的小兵

快手实习---第四阶段:开始独立

这个独立需求导师给我规划的是4天,而我用了很多很多天。(我是Java后端开发)

首先就是因为要和需求方不停地沟通、对齐理解。(后续发现我这个做得并不好)

然后就开始写代码。由于有三方一起,整个流程就变得很缓慢:要么是等他们对齐、要么是我遇到了问题。

而且这些问题,对于我来说非常匪夷所思:比如为什么消息队列的生产者发出去了,但没用?比如RPC服务调用是可以的,包装成HTTP就不行了?比如ES里的一个字段,有时候能写入到ES、有时候不能??

我好焦虑。因为我找不到解决问题的方向。我不知道为什么会这样。我又开始寻求导师帮助了。

在【生产者发出去但没用】这个问题(也是我遇到的第一个问题),我和导师强调说:没问题,debug过程中很正确,没有问题。

于是我导师生气了。他说:没问题?没问题你就别找了!叫我来不也是debug吗!

我好害怕,我不知道要怎么和他相处了。在以前,我每天早上都会说早上好的。我觉得我们之间的氛围好尴尬,我踏不出那一步。

快手实习---第五阶段:第一次独立解决匪夷所思的问题(1)

好在这个时候已经快到饭点了,同组的哥哥们一如往常一样叫我去吃饭。在路上他们悉心排解我:实习生哥哥说他也遇到过这种情况,没事的。正式员工哥哥说:不要说没问题,你说没问题导师肯定会生气,找就是了。(我是Java后端开发)

好吧,我还是觉得尴尬,但没办法我总要主动和导师说话吧。然后晚饭回来我和他说晚上好,他说你今天说过了。于是我感觉好多了。

但是问题呢还是在那里,导师都这么说了我自然没法继续找他了。于是我开始在焦虑的情况下努力解决问题。

这个问题是生产者发出去了,但没效果。于是我就尝试去看消费者有没有消费。然后发现消费者没有打日志,我找不到。于是我又开始手动打日志,部署之后在所在的容器那里通过Linux命令去找。(于是我终于用上了只存在于理论而未敲过的Linux命令)

发现确实没消费到!事情终于有眉目了,那么..为什么没消费到呢?

又陷入了死局。

我找不到方向,于是我就不得不尝试各种有可能的方向去找原因。

首先,我是用单测来调用SDK,然后再触发生产者发送消息,另一个工程的消费者接受消息并进行一定的处理。

现在已知的情况是,本地单测确实能让生产者发送消息,而子环境的消费者无法消费到这条消息。

OK那么我能想出可能的情况如下:

1、这个SDK有问题?

2、这个SDK没有问题,但是我的使用方式有问题?

3、使用的消息队列kafka有问题,我发现了一个kafka的一个Bug???

4、kafka没有问题,是我找消费者的日志的方式不对?

5、其实已经消费到了?但是日志打错了?没打出来?

6、我的工程有问题?用的是缓存而不是最新代码?还是拉取的代码不是最新的?工程的编译环境有问题?

主要是我的脑子也让我想不到别的原因了,于是我开始逐个排解。

1.运行其他工程里的其他单测,使用同一个版本的SDK,确定该SDK能正常工作。

2.使用方式是单测,其他需求写的单测都可以,没有问题。

3.这个我不敢说,我就一小小实习生,人家是大大kafka,想来也无问题。

4.这次我不是使用"less main.log | grep "xxxx"”这个命令了,而是直接 less main.log,然后Shift +G 盯着容器看,发现确实打出来了。

5.我来到消费者的工程,同样写了个单测,造数据然后调用消费者的代码,发现日志没问题。理论上日志是正确的Java语句,也没有问题。

6.我直接清除工程的缓存,检查了使用的Java版本为Java11,并且工程结构也是标准的微服务工程。(这里让我找了好久!因为我不知道微服务的正确工程是什么样的!试错了几次才知道,正确的父工程是不会标识任何source目录/test目录/额外生成等,子工程会有)

好,这么一通下来花了我两天。

快手实习---第六阶段:第一次独立解决匪夷所思的问题(2)

又是死局,我真的想不到其他的可能性了。

然后我开始对比所有可能的原因、发现只有第2点和第6点有可能存在问题,那么我就继续对比正常运行的情况和非正常运行的情况。

在第2点的对比情况下,我发现我的单测里的调用方式(不行的情况)和其他单测里的调用方式(行的情况)不是完全一致的。

我把他这个SDK的调用链路拆成了两个调用方法,而人家的是一次性调用完毕的。

如A.x().xx().xxx().xxxx();而我是A.x().xx();A.xxx().xxxx();

于是我尝试着改成人家那样:A.x().xx().xxx().xxxx();

惊呆了!可以了..

然后我翻了这个SDK的实现代码,认为A.x().xx(); A.xxx().xxxx(); 后者 A.xxx().xxxx();所构建的内部对象有可能覆盖了上一个对象的部分字段,导致字段的丢失。(有些字段存在了trace里,就能连用),可能是这个导致了消费者消费不到。

好吧,于是这个问题被我莫名其妙地解决了。困扰我三天的问题终于解决掉了。

(码字好累,我还想说说我遇到的其他匪夷所思的问题的,后续考虑出个番外)

快手实习---第七阶段:返工

这个问题结束后,我发现我的功能可以正确完成了,于是开开心心地交付。

结果,需求方开始改需求了!他说:XXX,我说:你之前不是这么说的!

可怜我没有证据,因为我和他所有的沟通都在线下,这些细节在文档上也没更新。

于是可怜的我就开始了一遍一遍地返工。根据他的要求一遍一遍地改…

需求方似乎也委屈,因为他的老板催得他也紧张。然后他就过来催我,催我也没办法,我已经寝食不安地写需求了,上班也写,下班也写,周末还写。我最惨的时候,debug de到了四点半,第二天十点多就要上班了。但他不知道,他以为我摸鱼才写这么慢!于是他说:线下开个会议室,他来看着我写,看能不能提供帮助。

我叹气,我有什么办法。于是就拉了个会议室,他盯着我写代码...在这其中,他让我查ES里的数据。可是我连八股文都没背过关于ES的,我哪里会什么查询语句啊!于是我当着他的面打开了GPT,从各个维度查了不少数据。(托他的福,我现在对ES的使用也有部分熟练度了)

更糟糕的是,在这时候还遇到了我前面提到的两个匪夷所思的问题!我没办法,我解决不了。于是需求方让我连麦导师去问他。我被迫一个电话打过去,我导师也接了。

我生怕他怪罪我,开口第一句我就搬出了需求方,我说:xx哥在我隔壁,我们遇到了一个问题。好在我导师知道我解决生产者那个问题花了很多的时间和精力,这次我一找他,他就逐步逐步地给了我解决的方向。

解决两个问题后,我终于交付了需求,至少看上去是正常的,我们打算明天上线。

这件事情也算告一段落了,怎知以后的生活是另一个维度的难。

(要上班了,以后再写)

#那些我实习了才知道的事#
全部评论
大家可能因为这篇文章觉得导师有点凶 但是很多时候他还是很温柔的,只是有时候我达不到他的预期他会有点生气。导师是一个对自己要求很高的人,有时候也可能是因为性别原因他不知道要怎么和我表达吧
8
送花
回复
分享
发布于 01-11 15:25 北京
卧槽 看着压力就好大
3
送花
回复
分享
发布于 01-10 20:05 陕西
滴滴
校招火热招聘中
官网直投
只能说跟我在喜马拉雅一模一样😅😅😅
2
送花
回复
分享
发布于 01-12 14:11 上海
看着好累啊,debug到4点半
2
送花
回复
分享
发布于 01-13 11:00 江苏
这么难吗
1
送花
回复
分享
发布于 01-10 20:12 江苏
实习了多久楼主
1
送花
回复
分享
发布于 01-13 00:37 广东
感觉你这mentor有点凶啊,我在快手实习的时候,前两周都是mentor手把手带着我做需求
点赞
送花
回复
分享
发布于 01-10 20:15 江西
看着也不是多容易的样子
点赞
送花
回复
分享
发布于 01-11 14:13 浙江
你导师的脾气看着挺大啊
点赞
送花
回复
分享
发布于 01-11 14:18 辽宁
哎,一样的遭遇啊
点赞
送花
回复
分享
发布于 01-11 14:23 福建
坐等楼主大佬后续的更新
点赞
送花
回复
分享
发布于 01-11 14:28 上海
太难了😭😭
点赞
送花
回复
分享
发布于 01-12 12:19 北京
这导师真的有问题,心情不好乱发泄一样的
点赞
送花
回复
分享
发布于 01-17 15:08 浙江
害怕,让我十分不敢去快手了
点赞
送花
回复
分享
发布于 01-28 21:47 北京
楼主好厉害,加油,但感觉mt能再稍微多帮一下就更好了
点赞
送花
回复
分享
发布于 03-03 13:32 北京

相关推荐

49 38 评论
分享
牛客网
牛客企业服务