那些年,我遇到的奇葩需求:一个准备考公的后端程序员的自白

刘浩宇
2025-12-18 12:32
阅读 2044

上周五晚上十一点半,我正窝在北京回龙观那套月租3500、隔音差到能听见隔壁情侣吵架的一居室里,改一个“紧急上线”的需求。屏幕右下角弹出微信消息,是我妈:“儿子,隔壁老李家闺女在市财政局上班,要不要安排见个面?你爸说你都三十了……”

我苦笑一声,顺手把泡面桶往地上一放,继续盯着IDE里那坨祖传代码——要求用户提交表单后,系统自动在后台生成一张带水印的PDF,并在PDF第一页右下角用宋体小五号字写上“本文件由AI生成,仅供参考”。问题是,这个功能原本根本不存在,产品昨天下午三点才提,今天中午就要给客户演示。

这已经不是第一次了。作为一名干了七年Java后端的老码农,我见过的需求,比某些人吃过的盐还离谱。


“能加个导出Excel吗?就点一下那种”

去年十月,我还在一家做SaaS的企业服务公司当后端组长。那天刚开完站会,产品经理小王冲进工位,一脸兴奋:“哥!大客户提了个超简单需求,能不能加个‘一键导出Excel’?”

我说行啊,但得评估下数据量。他说:“不多不多,就他们全公司的员工绩效数据,大概两万人吧。”

我心里咯噔一下。两万人?每人几十个字段?还要实时计算KPI?更要命的是,这破系统用的是MySQL 5.6,连窗口函数都不支持。

但我没直接拒绝,而是问:“客户要导出哪些字段?有没有筛选条件?频率高吗?”

小王摆摆手:“哎呀别那么复杂,就是点一下按钮,然后下载就行。客户说别的系统都能做到!”

后来我才知道,所谓“别的系统”,是人家用了ClickHouse + 异步队列 + 前端分页预加载的整套方案。而我们呢?单体应用,数据库直连,前端一请求,后端就得把两万条记录查出来塞进内存,再用Apache POI硬生生拼成Excel。

结果可想而知。上线当天,服务器直接OOM,整个服务瘫痪两小时。运维同事在群里咆哮:“谁他妈又搞同步导出大数据量Excel?!”

我默默背了锅。老板没骂我,反而说:“下次记得用异步。”可预算呢?人力呢?重构排期呢?没人提。

那一刻,我第一次认真考虑:是不是该离开这行了?


“用户头像必须能旋转360度”

更离谱的是前年冬天那个社交App项目。甲方是个做直播起家的老板,四十多岁,穿貂戴金链,开会时总爱说:“我们要做年轻人喜欢的产品!”

某天他突然拍板:“所有用户的头像,必须支持360度自由旋转!用户想怎么转就怎么转!”

我当场懵了。后端存个头像路径不就完了?旋转是前端的事啊!

但他坚持:“不行!必须后端支持!万一用户换设备了,旋转角度要同步!”

行吧。那就加个字段avatar_rotation_angle,float类型,范围0-360。听起来简单?

问题来了:用户旋转1度保存一次,再转1度又保存一次……一天操作几百次,数据库日志爆炸。而且前端传的角度精度到小数点后六位,导致同一个动作产生无数微小差异的记录。

最骚的是,测试阶段发现:有些安卓机陀螺仪不准,用户只是晃了下手机,头像就自动转了15度。用户投诉“我的头像怎么自己动了?!”

最后我们不得不加一层防抖+四舍五入到整数,再加缓存层避免频繁写库。为一个看似“炫酷”实则毫无意义的功能,折腾了整整两周。

那会儿我月薪18k,房租3500,每天加班到九点,老婆在老家带孩子,视频通话时她总说:“你眼睛怎么又红了?”

我说没事,就是熬夜改需求。其实心里清楚:我在用健康和家庭,换一堆连用户都不会注意到的“伪需求”。


转折点:考公念头的萌芽

真正让我下定决心考公的,是今年三月的一个深夜。

那天我在改一个“根据用户地理位置动态调整商品价格”的需求。逻辑极其复杂:要结合GPS坐标、行政区划、竞品价格、历史订单、甚至天气数据。技术上要用GeoHash+Redis缓存+定时任务对账。

凌晨两点,我正调试最后一个边界case,手机响了。是老家的社区书记,语气很急:“小陈啊,你爸高血压犯了,送医院了!你妈一个人弄不过来……”

我瞬间慌了。订最早一班高铁,早上六点出发。可临走前,项目经理打电话来:“那个地理定价功能,客户明天上午要看,你能不能远程支持一下?”

我站在北京南站冰冷的候车厅里,看着窗外灰蒙蒙的天,突然崩溃了。

我到底在图什么?

为了那点涨薪?从15k到22k,扣完税、交完房租、给孩子买奶粉、给父母寄药费,手里剩不下多少。
为了所谓的“技术成长”?可天天在屎山代码里打补丁,哪有什么架构设计、高并发实战?
为了留在大城市?可除了拥挤的地铁和永远还不完的房贷预期,我得到了什么?

回老家陪床那几天,我翻遍了省考公告。发现不少岗位明确写着“计算机类专业”,有的甚至要求“具有2年以上软件开发经验”——这不就是为我量身定做的吗?

老婆知道后没反对,只说:“你想清楚就行。反正咱家小城市,生活成本低,你要是考上,我还能重新找工作。”

那一刻,我忽然觉得,人生不该只有“需求评审”和“上线压测”。


吐槽归吐槽,但实战经验教会我什么?

说实话,这些奇葩需求虽然折磨人,但也逼我练出了真本事。

比如那个Excel导出事故后,我自学了Spring Batch和异步任务调度,现在写大数据导出稳如老狗;
头像旋转事件让我深入研究了前端-后端数据一致性问题,后来在简历里写“解决高并发场景下状态同步难题”还真唬住过面试官;
地理定价需求更是让我啃完了《Redis实战》和GeoHash算法原理,现在聊分布式缓存,我能讲半小时不带停。

后端开发的本质,从来不是写优雅的代码,而是在混乱中建立秩序。

客户不懂技术,产品不懂边界,老板只看结果——但作为后端,你得守住底线:数据不能丢,系统不能崩,安全不能出事。这份责任感,比任何框架都重要。


给还在一线挣扎的兄弟们几点建议

如果你也和我一样,在一线被奇葩需求轮番轰炸,不妨想想:

  1. 学会说“不”,但要用技术语言
    别直接说“做不到”,而是说“如果这样做,会有X风险,建议Y方案,需要Z资源”。用数据说话,老板才会听。

  2. 把烂活干出花
    即便是导出Excel,也可以做成通用组件,沉淀为团队资产。这样下次再有类似需求,你就是“专家”,而不是“苦力”。

  3. 定期复盘自己的时间去哪了
    如果70%的时间都在改临时需求、救火、填坑,那说明系统或流程有问题,该考虑跳槽或转型了。

  4. 别把职业当成全部人生
    我曾经以为35岁前必须做到架构师,否则就是失败。现在明白:稳定的生活、健康的父母、陪伴孩子的时光,可能比一个P7职级珍贵得多。


尾声:我在等一场考试,也在等一种生活

写这篇文章时,我刚刷完一套行测题。桌上摆着《申论范文100篇》,旁边是翻开的《Java并发编程实战》——一半是为了面试可能的技术岗公务员,一半是舍不得七年的后端老本行。

我知道,很多人会说:“程序员年薪几十万,干嘛去考月薪五千的公务员?”
但我想反问:如果一份工作让你长期焦虑、失眠、远离家人,钱真的能弥补这一切吗?

老家的地级市,公务员月薪确实不高,算上公积金也就六千出头。但房价八千一平,孩子上学不用抢学位,父母看病步行十分钟到三甲医院。最重要的是——晚上十点,我可以关掉电脑,陪老婆看一集《甄嬛传》,而不是在改一个“用户希望登录后背景音乐随机播放”的需求。

那些年遇到的奇葩需求,我会永远记得。它们像一块块磨刀石,把我这块粗铁磨得又钝又亮。
但接下来的路,我想为自己活一次。

技术人的价值,不该只用QPS和代码行数衡量。
有时候,选择安稳,也是一种勇敢。

(全文完)

评论 0

最热最新
暂无评论
刘浩宇Lv.1
0
影响力
0
文章
0
粉丝