美团18K:流程长、测试缺、问责严,填不了坑啊

项目本身

之前已经分享过遇见的困难:

  • 美团是没有测试和运维的,开发自测以后就开发自己上线
  • 而美团对于线上事故容忍度非常低,一旦出现资损整个职业生涯就结束了

遇见了一些困难,其中一个困难就是:

  • 在工期非常紧张的情况下,实习生给我的工作加码

聊聊情况

首先:我上线的时候,光完整上线时间就非常非常紧张了。基本上加班还得延期。, 这时候公司为了保证项目按期交付,给我安排了一个刚入职一年的正式员工。

他接手项目以后,第一操作是:

  • 要求每个方法上面必须添加注释
  • 对每个方法进行埋点、
  • 由于自己难以codeView,要求推翻重来
  • 对方法名提出自己的建议

给我至少增加了50%的工作量。

是代码更好维护了,但是项目延期了。

领导挎着一张脸问:项目为什么迟迟没有进展? 打回重做了。为了后期维护又添加了工作量。延期了。

差点把我给裁了。

情况描述

假如满分是100分,按照工期我只能拿出70分的答卷。

  • 这个成绩绝对绝对是及格的,而且比及格线高10分

然后实习生对于70分的答卷不满意,要求必须达到90分的水平。

那怎么办?我只能提高标准,最后导致连卷子都答不完。

你高标准严要求可以啊,但是不能因为你高标准严要求,让我能把工作丢了吧。 他不行。

项目情况

我升级的是C端的项目,然后干了4个月以后,工期直接炸了,而且遇见了一些风险。导致了线上事故。 为了防止第二个线上事故,对线上风险进行了汇报。

于是我就没法负责这个项目:因为在我手里,他必然延期。接手B端的业务。

但是:B端业务他和C端是割裂的。两套业务逻辑。

  • 在美团,B端的人只懂B端的业务,C端的人只懂C端的业务
  • 假如一个业务同时需要BC端协作,至少两个人。

严格要求

这时候,我就在B端架构师手下干活。他表示:你的代码有问题

什么问题?需要优化。

  • 你的DDD分层逻辑不对,编排层只是用来编排的,方法应该写在领域层
  • 你的代码没有上缓存,又性能风险
  • 你的函数命名有问题
  • 你应该用复杂的方式来实现极致的性能

后来我被裁的时候,我说:我只能做到70分,但是架构师要求做到95分甚至更高。 领导: 80分。

  • 你得有架构师思维,得有后期维护的考量,得让同事能够接手你的代码
  • 得用缓存提升每一丝丝性能
  • 得使用复杂架构方式来实现简单功能

但是我只是一个外包,在完全不熟悉业务的情况下,强行要求做到95分,于是就被裁了。

聊聊美团的核心业务组

我入职的是美团的核心业务团队,他每秒的并发是百万级别,资金流动每天几个亿。 你写的每一行代码,下面都是几千万资金的流动;出了事情谁都担不起。我不要求你95分?

你以为是维护几百几千用户的小破网站?我们美团就这个要求。而且以此工作了十几年。

然后:我们项目组还有业绩指标,他没有测试团队 + 运维团队。(美团有,但是我们项目组专门招聘只负责运维的是没有的) 压力直接压给开发团队。我们不得更努力。 还有一件事,那就是我们项目组是一个100多个微服务的大集群,业务逻辑复杂。你得在复杂的业务逻辑里面,达到95分的性能要求。

最后,经过考验,你的水平不能够承担这些要求,那我只能说很抱歉。

我一看:18K的外包工资。 你搞笑呢?

压力本身

在压力 + 本身实力的情况下,我只能返工。

我和之前给我加码的同事去聊,同事表示:我算是非常非常宽松了,B端负责人他要求就是高。 那没办法,人家不满意你就改呗。

于是,一改二改三改四改五改。 一个简单需求改了至少8遍,而且平均8遍以上。项目工期直接炸穿。

领导都蒙了:我没有给你安排那么多活啊,你怎么天天加班? 这样,把你裁了,你也解脱我也解脱。

会议本身

一个需求大概是7天左右,其中能编码的时间只占20%左右。

  • 首先得参加产品会议
  • 然后设计方案,设计完方案以后,提交给产品(需求方)审核,B端负责人也需要审核

一个会议基本上就是:

  • 产品提出方案
  • B端负责人不同意,提出方案
  • 然后领导不同意

推动非常非常吃力,一个简单需求至少开10个小时以上的会。 否则:开发出来了,上线了,产品不同意上不了线;codeViewer不同意上不了线,打回去重做。

然后底层技术细节,也得开会。 出个方案以后,codeViewer就要问了:你这个需求有没有更好的方案? 函数名是不是合理? 有没有改进的地方?

这也要开会。算内部会议。

然后就是同步信息的会议。

比如说:B端提供一个接口,这个接口:

  • 限流多少
  • 参数多少
  • 授权多少

然后我提供接口,也需要提供一个会议。

由于我们项目组没有测试,其他项目组的同事还要参加测试,告诉测试团队如何测试。 上线的时候,同步上线时间,这个不需要开会,在群里@一声。但是延期这种事情最好需要开会。

我最多的一次,拉了16次会议。

业务梳理

写代码不是你想写就写啊,你得梳理现有的业务逻辑。 对于一个小微项目来说,上去就是干。但是对于美团这种体量的公司,梳理成本比编码都高。业务链路超长。

我提供一个接口,然后你得至少找4个微服务,大概20层堆栈,才能找到对应的业务逻辑点。 光找到需要修改的地方,就得至少4个小时。 java的啰嗦程度 + DDD的频繁跳转,导致新手完全无法处理。

就为了写一行if else,就得找四个小时。

然后:美团大量使用策略模式,而且策略模式嵌套策略模式。导致学习成本极高。

写文档

为了会议和留档,需要写:

  • 需求PRD,这个产品提供
  • 开发的开发文档
  • 开发的自测文档
  • 上线文档
  • 链接的git链接

你光拿嘴去说,这不现实。

编程环节

跳过。大家都会写。

部署测试环境。

然后,你写的代码每个参数都需要整理到文档上。 代码每个方法要有注释。

但是有几个:

  • 测试用例覆盖65%(很多公司似乎是85%甚至更高)
  • 走测试用例

审核环节

然后,你提交代码以后,找到CodeViewer,他会审核你的代码。

然后提出了一大堆改进意见,通常来说,500行代码12处。

  • 没有bug,全是各种优化,还有分层问题
  • 函数名没有见名知意
  • 缓存命名不规范

能跑是绝对能跑的,功能是没问题的,但是性能问题你没有考虑,分层不合理,方案设计没经过考虑。 达不到要求,重做。

那就回滚。

走流水线上线

然后就是找时间走流水线上线。 上线的时候,需要监控报错信息。至少一个半小时。

假如上线失败,需要写复盘。

如果是老环境,需要解决maven依赖。还有线上线下不一致等各种问题

产品验收并上线

然后,当上线完成以后,告知产品,产品验收。 我们项目组没有测试组 + 运维组。所以让完全不懂行的产品点点点。假如没有问题就可以验收。

但是由于我不清楚业务,所以上线以后发现了大量问题。 返工率非常高。

困难点

我这个架构师,他只考虑性能 + 架构的完美性。 对于代码细节,他也不完全清楚。

我在写代码的时候,经常需要调用美团自研包 + 同事写好的代码 + 其他人的接口。这些都是坑点。 没有文档。

我在没有手把手文档教学、自己研究的时候,发现我自己经常性忽略内容。 就是:没人给我兜底。

  • 架构师他只提要求,对于各种细节还是得自己把握
  • 测试团队完全没有,导致我上线的时候基本上处于裸奔状态

我问了一下AI,他的说法是:你作为一个资深的开发来说,你必须考虑到。 我资深嘛?我上架70分的代码都很困难了好不好?

总结

美团开发压力很大, 兜底没有,测试缺位,项目基本裸奔。 流程非常长,业务中写代码的时间非常短,会议很多。 问责机制很严,线上上线压力极大。 工期比较合理,但是架不住菜鸟返工。

需要至少5年经验甚至以上,踩过各种坑的老鸟,才能去美团当18K的外包。

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP