入职软通第一个月,我接手的第一个独立需求就被打回来三次。代码review上,组长指着某段异常处理说:“你这吞了异常,线上出了问题你连日志都捞不到。”那会儿我才真正意识到,在这行,“能跑”和“能扛事”是两码事。
转正考核这半年,我主要扑在XX核心业务模块上,顺带把系统性能优化的硬骨头啃了一块。手上几个硬指标:17个版本迭代,320多次提交,功能交付节点没延误过一次。客户满意度那块,现场驻场的时候对方负责人当面给我打了分,98.5,扣分项是“文档更新偶尔滞后”——这个我认,有两次改完代码忙得忘了同步手册,被人家微信追着催了两天。
真正让我觉得这半年没白过的,是几场硬仗打完手上攒下的东西。
故障现场:GC飙高那两天两夜
入职第二个月,月底结算窗口,客户那边炸了——核心系统的数据导出功能一到高峰期就报错,下游汇总数据的部门直接停了工。我拿到日志第一反应不是改代码,是搭环境复现。用生产脱敏数据在测试机压了300并发,问题确实出来了:内存占用飙到2.3G,GC日志里full gc频繁得吓人,服务隔几分钟就假死一次。
拆调用链发现症结在数据组装层。老代码为了“通用”,把所有查询结果先全量load进内存再分页,遇上大数据量导出就撑爆。我在代码里定位到那个类——DataExportService第237行,一个List直接接住了整表查询结果。当时心里骂了一句,这设计放五年前没问题,数据量翻十倍就是定时炸弹。
紧急止血方案改流式查询,用游标逐批处理,内存峰值直接压到400M以下。但光止血不够,我把那个通用查询器重写了,针对高频导出场景单独做了分片处理。上线那天凌晨两点,看着监控曲线从锯齿状拉成平滑直线,我趴在工位上眯了半小时才缓过来。这个事之后,我在模块里加了内存告警,使用率超70%自动钉钉轰炸,再没让这类问题过夜。
性能优化:那次跟架构师拍桌子
我们有个批量查询接口,平时响应2.3秒,SLA虽然没过线,但每次大促都成瓶颈。我拿arthas抓了线上快照,发现80%时间耗在循环调外部接口上——那个第三方接口本身就慢,循环调等于把慢放大了十倍。
我出的方案是本地Caffeine加Redis双层缓存,再把串行调用改并行异步。架构师老张看完方案说:“上Redis成本太高,直接用Caffeine不行吗?”我当场给他看了压测数据:单Caffeine在峰值时命中率只有62%,加Redis能到94%,而且Redis集群本来就是现成的。争论了半小时,他拍板让我按方案走。
改完上线,响应时间从2.3秒掉到0.8秒以内,峰值吞吐量翻了三倍。后来老张在组会上说:“这小子拿数据说话,我服。”这事儿让我明白,优化不是炫技,是把业务场景摸透了之后,敢于对“设计优雅”的代码动刀——有时候删掉几百行所谓的通用逻辑,比加几百行新代码管用得多。
现场那点破事:被运维骂出来的手册
我们团队管好几个客户现场,环境五花八门。有一次现场部署,运维打电话过来吼:“你代码在我这跑不起来!”我远程一看,对方JDK版本是1.6,我编译用的1.8,这种低级错误让两边扯皮扯了两小时。
-
HN373.com编辑部传承文档精选:
- 年终工作总结2026 | 软装设计师转正工作总结 | 暖通工作总结 | 制冷暖通工作总结 | 软通转正工作总结 | 软通转正工作总结
我憋着一口气,花了两周把各现场的环境差异摸了一遍——JDK版本、中间件配置、操作系统参数、数据库驱动版本,全列出来做成checklist。每次交付前,运维按表逐项核对,把“在我这跑得好好的”这种屁话扼杀在摇篮里。手册三个月迭代了四版,现场部署时间从平均2小时压缩到40分钟,因为环境问题返工的次数降了七成。
后来我顺手在CI里加了自定义PMD规则,把团队容易忘的那些坑——资源没关、异常吞掉、空指针没判——直接卡在构建阶段。刚开始有同事嫌烦,说我管得太宽。我回了一句:“线上炸了你去通宵,我不管。”两个月后线上因低级错误的故障为0,再没人吭声。
补短板:有些坑还得自己踩
转正之后第一件事,我把这半年代码review里被指出的问题拉了个清单——空指针判了但没完全判、日志打印不规范、事务边界没想清楚,一共23条。贴在工位显示器边上,每天看一眼。
下一步想啃的是业务全局观。我对自己的模块够熟,但跨系统调用、上下游联调时还经常抓瞎。下个月开始跟着老员工跑几次客户现场,把整个业务链条摸透。另外准备把单元测试覆盖率从60%拉到85%,这东西平时没人催,但线上出问题时,覆盖率高的一眼就能定位到bug。
这半年最深的一个体会:写代码最怕的不是出bug,是出bug的时候不知道从哪下手。每一次故障排查、每一次深夜盯日志、每一次跟同事争论方案,最后沉淀下来的不是多漂亮的代码,是面对问题时不慌的那股底气。转正只是个手续,真正让我觉得“站稳了”的,是这六个月里一个个熬过来的深夜,和那些被骂过、改过、重写过之后终于跑稳了的东西。
-
需要更多的工作总结网内容,请访问至:工作总结