2022 第 12 周 - 程序接盘侠
题图:油菜花
清明节假期最后一天班的深夜,办公室空空数人,身边音乐声音还在唱着李健的《拾光》专辑,电脑屏幕上,我快速地扫视着程序日志:应用启动报错,修改再发布;分支合并冲突、SQL 执行报错,排除一连串错误之后,终于程序成功跑起来了,我通过 Test API 发起了服务验证,邮件、消息推送,能正常发出,文案仍存在 null 字符,快速修复一版再发布,列表页的数据还存在部分不正确的标示,此时此刻,我松了一口气,开发阶段性完成,假期过后还有一天自测时间,于是我收拾设备准备回家,远处的工位上两位伙伴还在聊着程序的设计以及问题出现的原因,边聊边听到无奈的叹息,走上前去才得知,二位也是在处理一个别人留下来的糟糕代码。
平日假期前一天,下午 6 点过后,公司的人陆陆续续就都走完了。这次本该早下班的我,却因为一位同事的“休假”,交接给我的工作未完成而加班赶工。承诺客户的周期,从三月初开始,到三月底交付,长达一个月的开发周期,开发一个任务超时提醒的小功能,理论上完全足够了,这位仁兄却一直到临走的前一天跟我说代码尚未自测,离交付日期仅剩一天时间。我礼貌性的笑着说没事,听他讲完程序关键信息,交接会议很简短。我来不及细看程序,因为自己本身还有项目开发任务,与小组 leader 协商由一位新来的同事接替测试并按时交付客户验收。
果然,新来的同事动作很迅速,经过一番调试,将代码部署到了相关环境,接下来几天里,他反复跑来问我问题,客户在工作群里反馈这里不对,那里不对,总之很多问题。直到这周四晚上,新同事又找了过来,说需要支援另一个团队,有人交接,这个功能问题太多了,无法再让客户继续验收了,需要协商看怎么解决。现状是程序根本就没开发完,很多消息文案还停留在产品经理提供的模版状态。我又找到了小组 leader 说明了缘由,当机立断,小组长立马打电话给客户沟通,叫停了验收,让我另行评估时间。这事自然又落到了我身上。
第二天,我忙完手头的事情,开始着手看这位 “休假”同事留下的代码。确实是一个不可用的状态,存在以下几点问题:
对于批量扫描任务:未做分批扫描,一次性扫描全部。
多层 for 嵌套,能批量操作的数据却一条一条读写,完全没考虑设计与性能问题。
逻辑表达繁杂,一个 method 写大几百行代码,if,else if,else 多层嵌套,也看到了上一位同事修改的痕迹。
看了代码提交记录,临验收的前一天写的代码,合计是跟我交接当天写的。
未完成的代码,不符合预期的逻辑。
经过半天评估,以及我对系统业务的了解,觉得在原基础上修修补补,最后自己运维仍然会存在很多问题,而且程序一旦上线,后续想重构的机会非常少,于是我打算用两天时间重写,一天时间测试,完成这个事,跟组长沟通完就动手开干了,于是就有了开头的一幕。
回想这位“休假”同事平时的工作表现,在办公室咋咋唬唬,口头禅:一会一个“MyGod”,一会一个“哦,是它”的感慨,工位坐我旁边时总觉得他太吵了,跟客户聊需求,打电话声音特别大,一聊就没完没了,时不时蹦出来这个没办法,那个做不了,原来逻辑就是怎样怎样。它的签名也很个性:一杯茶,一包烟,一行代码撸一天。现在看来,好贴切。
跟组长聊天得知公司对他的评价:
没有主动承担精神,让做啥就只做啥,没有扩展的主动性。
做事不能抓住重点,总是在扯皮。
我想起了两年前的一次聊天,那是一次晚间下班路上,我开车他坐我车捎带着他回家,在后座的他聊起公司的组织变动,感觉很消极:说交到我们团队的都是不怎么好的项目,不被上头重视的项目等等言辞。当时我虽然反对这种看法,但是没有说出来,没成想这老兄在两年后竟然把自己坑了一把。
其实,关于公司业务项目的好坏,大部分时候程序员是无法选择的,而除了把负责的开发任务保质保量交付,额外想要获得成长,只能靠自己多去研究项目所涉及的技术内容。在目前的公司,虽说不上特别前沿,但是主流的技术环境都有,像大数据实时、离线技术,Java、Python 都能在开发中使用,自研的、开源的组件都有得用。要说平日里多是业务开发,像消息队列,RPC 组件,数据库等等,了解其实都不算深入,都有值得学习的东西在。原来我总是想着公司能带着自己技术成长,其实成长这事情,还是靠自己主动自发去做更多有益成长的事。
版权声明: 本文为 InfoQ 作者【Lin】的原创文章。
原文链接:【http://xie.infoq.cn/article/5ff7708f3d5a0a611b015d32c】。文章转载请联系作者。
评论