完成了一个复杂需求

大家好,这里是阿新

年前居家办公期间被分配进了一个比较复杂的需求里,原计划是经验丰富的准哥和鹏桑分别设计对应部分的技术方案,之后带我一起编码实现。然而我接到这个需求还没两天,鹏桑就突然离职跑路了,他负责的是离线任务的设计和开发,于是这部分需求理所应当的落到了我的头上,原本我只是一个混经验的,直接成这个需求的主力开发了。

说实话,看到离线任务的PRD我头都大了,看了一天,需求没理解明白,倒是理解了鹏桑为什么要跑路(开个玩笑,其实他就是想休息一段时间)。工作交接后准哥帮忙粗略的设计了离线任务的框架,剩下的工作就由我来负责。

此时还有两个关键问题没有解决:1. 有一半的需求场景没有覆盖到;2. 没考虑到故障恢复。我在准哥方案的基础上继续设计。刚好这个时候恢复了线下办公,有一些问题我不知道如何解决,就当面请教leader和准哥,在他们的耐心指导下,终于用了将近一周的时间设计出了可行的技术方案。

技术方案确定下来后,就开始着手进行开发。原定上线时间比较晚,开发时间很充裕,但因为某种原因,该需求突然变的重要且紧急,因此上线时间提前了半个月,此时离这个时间还有三周,除去测试的时间,开发时间就只剩下两周左右,组里只能想办法加快进度。于是我把程序主流程和故障恢复的代码拆解开,主流程先提测,故障恢复放在最后开发,这样可以让测试同事早点介入,加快进度。

由于工作量大、自身对数据库事务和并发编程了解的不够全面,导致开发期间稍微遇到了点困难,好在都顺利解决了,同时还借这个机会恶补了相关知识。那段时间我没有午休,几乎每天都晚上11点下班,吃饭和睡觉前都在想方案的逻辑通不通,代码该怎么写。

就这样高强度搞了两周,我负责的部分已经开发的差不多了,但是自测的还不够全面。这个需求非常关键。为了不出线上事故,我在上线前几天尽可能多的测试了各种场景,模拟了各种故障(就是在这个时候删的库)。与此同时,准哥也在帮我review代码,他的技术很强,帮助我精简了很多冗余的代码,并且指导我修正了很多小问题。

上线前一晚,leader 询问了我故障恢复的逻辑,发现有误恢复的风险,建议我修改一下,这次上线先不上故障恢复的代码。好在这部分逻辑和主流程耦合的很少,一下就改好了。

终于,在上线日期前我完成了所有的工作,然而因为一些非技术的原因,这个需求必须推迟上线,于是相关的代码就只好被暂时搁置。刚好我也用了大概两天时间,把故障恢复的代码改好自测好,合入了需求分支,等待上线。

又过了一周多,我们接到通知,这个需求可以上了,准哥和我就紧锣密鼓的开始上线。因为我是第一次搞这种逻辑复杂的需求,害怕会出事故,于是我疯狂监控上线期间的日志,也得益于我的谨慎,果然在临上线前发现了一个bug,准哥很快就帮我定位到了问题并紧急修复,最后上线上到了十点多,终于成功上完了。

第二天,我做的这部分需求开始被第一次使用,当时特别特别紧张,因为前一天上线出了bug,我担心会不会有什么未知的问题是没被发现的,当时感觉自己的职业生涯可能马上就要断送了。直到leader和我都监控感觉线上没什么问题,我才松了一口气。到现在,这个程序已经服务了非常多的用户,还是挺有成就感的。

通过这个需求我积攒了很多经验,发现了自己很多的不足,比如上线发现的那个bug,只要认真写单元测试就可以避免;还有代码质量也不高,为此我特意买了一本《代码整洁之道》,希望能通过阅读它来提高自己的代码质量。

今后还是要继续加油呀。

pa3CP3fSRlelROydCOWTGkd15frSFkhl.jpg

#我的成功项目解析##后端开发##阿新的搬砖日记##你遇到过哪些神仙同事##我的求职思考#
全部评论
点赞 回复 分享
发布于 2023-03-15 18:37 美国
加油呀!
点赞 回复 分享
发布于 2023-03-21 17:40 北京

相关推荐

6 6 评论
分享
牛客网
牛客企业服务