那几天我整个人的状态,说好听点叫项目初创期核心成员,说难听点就是一个被老板按在工位上持续高负载运行的单线程服务。
白天在公司搭 AI 项目后端架构,晚上回到家脑子里还在跑日志。睡前想的是模型接口怎么兜底,早上睁眼第一件事还是回忆昨天那条 500 到底是不是事务边界没收好。最离谱的是,有天我刷牙的时候,盯着镜子里那张脸,脑子里突然冒出来一句:
“这服务看着在线,其实健康检查已经开始飘红了。”
我自己都差点被自己整笑了。
笑完又有点笑不出来。
因为那会儿我确实有点绷过头了。表面上还装得挺稳定,坐工位上照样开会、写代码、回消息,实际上脑子里的线程池早就打满了。那种感觉很像你以为自己只是在忙,结果忙着忙着,连喘口气都像在申请额外资源,主打一个人还活着,但系统已经不太体面了。
周五下午快下班的时候,我还在盯着一段模型回调日志发呆,微信弹出来一条小璇的消息。
“你周末有事没?”
我回得很快:“咋了?”
她那边停了两秒,发过来一句:
“你最近脸色不太像活人。周末去深圳湾公园吧,露营,打掼蛋,吹吹风。”
我看着那行字,第一反应不是心动,是嘴硬。
“我没事啊。”
她回得特别快,像早就料到我会这么回:
“你这句‘我没事’,跟接口报错以后返回的 success=true 差不多,谁信谁傻。”
我盯着屏幕,没绷住,笑了一下。
这就是小璇,一般不说废话,也不搞那种特别柔软的安慰。她更像一个高质量 code review,看上去不热烈,实际上每一句都能精准圈中你最想装没事的那行代码。
我还想继续挣扎一下:“项目刚起步,哪有心情玩。”
她直接给我补了一刀:
“你再这么跑下去,项目没上线,你先宕机了。”
这话说得一点都不夸张,甚至算保守估计。
我还没来得及回,她又发了一句:
“我把小马哥和伟源一起叫上了。你别反悔,周六下午。”
我当时盯着那句“我把小马哥和伟源一起叫上了”,心里只有一个想法:
这姑娘现在做事越来越像产品经理了,需求都不是跟你商量,是直接排期落地,顺手还把相关依赖一起拉通了。
不过我也确实没再拒绝。
因为说实话,我自己也知道,再不降级运行一下,我这颗 CPU 迟早得过热保护。
周六早上,我还在被窝里睡得迷迷糊糊,耳边先听见窗帘被拉开的声音,紧接着阳光从外面照进来,直接给我脸上打了个高亮补丁。
我皱着眉翻了个身,想继续装死,结果下一秒,小璇的声音就在床边响起来了。
“别装下线了,起床。”
我把被子往头上一蒙,声音闷闷地回她:
“让我再睡十分钟。”
她站在床边,语气特别平静:
“你昨天晚上自己说的,今天要去深圳湾公园。现在已经不是十分钟能解决的问题了,你这属于服务假死。”
我闭着眼还想挣扎:“我没假死,我只是低功耗待机。”
她轻轻笑了一下:“你最近这个状态,低功耗是假象,高负载才是真相。赶紧起来,别逼我强制重启你。”
我被她这几句话说得自己都想笑,硬是在床上又赖了半分钟,最后还是老老实实爬起来了。
说真的,自从跟小璇住到一起之后,我越来越觉得,生活这东西也挺像系统协作。
单身的时候,很多事全靠自己手动触发:起床靠闹钟,吃饭靠缘分,心情崩了靠硬扛,活得跟一个什么都没接的单机程序一样。现在不一样了,家里多了个人,很多流程会自动补齐。你不是突然变废了,而是有些以前必须自己顶着做的动作,现在会有人很自然地帮你接一下。
比如起床。
以前我周末如果没事,多半能一觉睡到中午,醒来以后饿得前胸贴后背,再去楼下随便买点东西糊弄一下。
现在我刚洗漱完,走到客厅,就闻到厨房里飘出来的香味。
小璇已经把早餐准备得差不多了。
桌上放着两片煎好的吐司,旁边是煎蛋和切好的水果,还有两杯牛奶。我站在餐桌边看了两秒,心里忽然有种很奇怪的感觉。
以前我在深圳吃早餐,更多时候是便利店饭团、楼下肠粉、地铁口豆浆,主打一个快速上线、能跑就行。
现在早上一起床,家里已经有热的早餐在等着了。
这种感觉很难形容。
不是那种偶像剧式的感动,更多像你原本一直靠手动脚本维持运行,突然有一天系统里多了个稳定服务,把你那些容易漏掉的小流程都自动接管了。你表面上还在嘴硬,心里其实已经默默把“这日子确实比以前顺了”写进配置中心了。
我坐下来,看着桌上的早餐,忍不住说了一句:
“你起这么早,就为了搞这个?”
小璇把平底锅洗了,转身过来看了我一眼。
“嗯,不然呢?总不能今天又让你空着肚子去公园,再半路低血糖,当场给小马哥和伟源表演一个程序员线下宕机。”
我笑着拿起吐司,咬了一口,热的。
“你这话说得,我哪有这么脆。”
“你没有吗?”她把牛奶推到我手边,语气不咸不淡,“你最近晚上回家那状态,坐沙发上发会儿呆都像线程占满了。昨天洗完澡还拿着手机看群消息,看得跟要连夜回滚一样。”
我一时居然没法反驳。
因为她说得太对了。
我这段时间确实有点绷过头了。表面上还算正常,能上班,能写代码,能开会,能回消息,实际上脑子里的线程池早就快打满了。那种感觉就像一个表面健康检查还能过的服务,指标看着没完全爆,但你自己知道,内存占用已经在那儿偷偷往上爬了。
我喝了口牛奶,嘴上还是想挣扎一下:
“项目刚开始嘛,忙点正常。”
小璇坐到我对面,低头咬了口面包,慢悠悠地回我一句:
“忙点正常,把自己忙成快报警就不正常了。所以今天出去,不是带你玩,是带你降级运行。”
我看着她,没忍住笑了。
“你现在说话越来越像在给我做线上告警分析了。”
“那没办法。”她抬眼看我,“谁让你这服务最近状态太差,还不肯自己修。”
我边吃边笑,心里那点最近一直发紧的东西,居然在这几句对话里先松了一点。
这就是小璇厉害的地方。她不是那种会抱着你一顿安慰的人,她更像一个写得很好的监控系统,不吵不闹,但总能在你真要出问题之前,先把隐患点出来。
吃完早餐以后,我们把要带的东西简单收拾了一下。
野餐垫、扑克牌、零食、饮料、湿巾、防晒,还有些杂七杂八的小东西,小璇一早就分门别类整理好了。我站旁边看她收拾,越看越觉得,家里这个系统如果离开她,很多基础服务八成得直接降级。
我伸手去接她手里的袋子,她看了我一眼。
“你拿这个轻的,重的我来放推车里。”
我立刻不服:“不是,我在你心里就这么弱?”
她头也没抬:“你不弱,你只是最近 CPU 温度有点高,不适合再额外跑重任务。”
我被她噎得半天没说出话,最后只能很没骨气地把那个轻点的袋子接过来。
出门的时候,小璇顺手把门锁上,我跟在她后面,突然有种很奇妙的感觉。
以前一个人出门,流程都很散,像临时写的脚本,能不能顺利执行全看当天运气。
现在两个人一起出门,哪怕只是去公园露个营,整个节奏也明显稳了很多。她负责把生活层面的细节补齐,我负责提袋子、推车、跟着一起走。听起来不是什么惊天动地的大事,但落在日子里,就是一种很具体的踏实。
到了深圳湾公园的时候,小马哥和伟源已经快到了。
深圳湾周末还是老样子,草地上全是人。遛娃的、散步的、拍照的、露营的,风吹过来还挺舒服。远远看过去,别人家的天幕一个比一个精致,装备齐全得像专业团队出外景。
再看看我们这一摊。
一个折叠推车,几袋零食,一副扑克牌,一个野餐垫,外加两个程序员和一个看上去明显最靠谱的 UI。
整体气质非常统一——草台班子,但勉强能跑。
小马哥和伟源走过来的时候,小马哥先盯着我看了两秒,然后啧了一声。
“雷子,你这脸色比上次见还差。你最近是不是被新项目狠狠干了一顿?”
伟源也跟着点头:“看着像连续三天都在跟日志谈恋爱。”
我刚想嘴硬,小璇已经站在旁边淡淡来了一句:
“差不多吧。最近人是活着的,主要靠意志力在续命。”
小马哥一听就乐了:“行,这评价一听就专业。看来你最近不是在工作,是在被项目做压测。”
我翻了个白眼:“你们两个差不多行了啊,一见面先给我做 code review 是吧?”
伟源笑得不行:“没办法,你这状态太明显了。要不是小璇今天把你带出来,我都怀疑你周末还打算在家继续排查链路。”
我嘴上骂他们扯淡,心里却不得不承认——他们说得也没错。
如果今天不是小璇硬把我从床上薅起来,还顺带给我准备好早餐、把东西都收拾明白,我大概率真能在家里继续瘫着,然后假装休息,实际继续抱着手机看项目群,过一个披着周末皮的线上待命日。
找好地方以后,我们开始搭天幕、铺垫子、摆零食。
然后事实证明,三个男程序员在线下干这种活,执行效果跟需求评审会上拍胸脯说“这很简单”差不多——说起来头头是道,做起来一地鸡毛。
小马哥负责瞎指挥,属于典型只开会不落地的风格。
伟源研究支架研究了半天,最后发现方向搞反了。
我本来想证明一下自己还有生活能力,结果地钉第一下就差点打歪。
小璇站旁边看了我们三秒,最后还是没忍住走过来,接过我手里的锤子。
“你们三个这执行力,像极了会上一顿输出,落地全靠补锅。”
我还想挽尊:“我刚刚那一下只是角度没找准。”
她边调整边回我一句:
“嗯,就像你们后端接口逻辑都对,调起来就是全错。”
小马哥和伟源笑得当场蹲下去。
“完了。”小马哥拍着大腿说,“今天牌还没开打,雷子先在线下联调阶段输了。”
伟源也补了一刀:“我现在明白为什么要把我们叫来了。表面上四人露营局,实际上是小璇带三个问题儿童做现场实操。”
折腾了十几分钟,天幕总算搭起来了。
虽然不算完美,但至少能用,属于典型程序员审美:不漂亮,但能跑。
东西一摆开,小璇先把饮料和水果拿出来,又把野餐垫整理平。我刚坐下,她就顺手把一瓶气泡水递到我手边,动作自然得像默认协议早就配好了。
我下意识接过来,说了句:“谢了。”
小马哥坐对面,立刻“啧”了一声。
“看见没,这就是稳定运行的双人系统。我们两个还在手动找资源,人家那边已经自动分配了。”
伟源也跟着阴阳怪气:“今天这局我算看明白了,我们不是来打掼蛋的,是来当外部观察节点的。”
我听得脑门发烫,嘴上还得硬撑:“递个水怎么了?你们两个别搞得跟没见过世面似的。”
小璇特别淡定,坐我旁边拧开自己的饮料,慢悠悠回了一句:
“他们不是没见过世面,他们是单机太久了,不理解双向协作的体验。”
这话一出来,小马哥和伟源当场沉默了两秒。
然后小马哥往后一靠,捂着胸口:“行,这口狗粮吃得挺高级,还是技术栈兼容版的。”
我差点没绷住笑出声。
掼蛋开打以后,气氛算是彻底热起来了。
小马哥打牌跟产品改需求一个路子,毫无章法,但自信拉满;伟源打牌则像老系统维护工程师,表面稳得不行,背地里一堆小套路;至于我,被他们一致评价为“连出牌都像在做资源调度”。
“你能不能别一脸算索引的表情?”小马哥边摸牌边吐槽我。
伟源也接上:“他这不是打牌,他是在脑子里做最优解。输了估计还得写份复盘文档。”
我把牌一摔:“你们懂个屁,我这是全局观。”
小璇瞥了我一眼,特别平静地说:
“你这个全局观,看起来更像想太多。出来放松都还一脸排查链路的样子,累不累啊?”
我本来还想继续嘴硬,可她这句话一出来,我整个人居然顿了一下。
累不累?
其实挺累的。
最近我干什么都容易绷着,脑子像一直没退出高负载模式。接口、日志、事务、状态机、模型调用,这些东西在里面一圈圈打转,转得我连周末坐在草地上打牌,都没法完全把那套思路关掉。
可也是在这个时候,风吹过来,牌局热起来,小马哥和伟源在对面为了刚才那把牌到底谁该背锅吵得跟事故复盘会似的,小璇坐我旁边,一边看牌一边时不时补一刀,我突然发现——我已经很久没像现在这样,脑子里不是项目待办,而只是单纯盯着手里的牌和眼前这几个人说废话了。
那种感觉很轻。
不是一下痊愈,也不是突然鸡血满血复活。
更像脑子里的报警群终于安静了一会儿,线程池总算肯释放一点资源给我自己用。
牌打到后面,输赢已经不重要了。
重要的是几个人越坐越松,话题也越聊越散。
小马哥吐槽他们最近的需求三天两头改,改得像没冻结版本的 PRD;伟源骂他们那边有个祖传模块,代码历史比秦朝还长,谁碰谁掉血;我也跟着吐槽了几句新项目里那几个不稳定接口,感觉总算不是自己一个人对着日志生闷气了。
聊到一半,我伸手去够旁边那袋薯片,手刚伸过去,小璇已经先一步把袋子拿过来放到了我手边。
动作特别顺,顺得像根本不用思考。
小马哥一拍大腿:“看见没!又来了!这就叫配置生效!”
伟源也跟着乐:“完了,今天这草地不是露营地,是情侣系统稳定运行演示环境。”
我脸都开始发热了:“你们两个有病吧,拿包薯片也能解读这么多?”
小璇倒很稳,靠在椅子上喝了口饮料,淡淡来了一句:
“他们这是酸,不是分析。”
小马哥立刻捂心口:“行,又补一刀。”
伟源也叹气:“今天这局牌我们没怎么输,主要是精神层面被持续输出。”
我在旁边装得一脸嫌弃,心里其实还挺受用。
有些狗粮吧,真不是故意撒的。
是两个人住到一起以后,很多动作已经不用刻意设计了。递水、拿吃的、提醒你别晒着、看出你是不是又在嘴硬,这些小事会很自然地变成默认流程。你自己未必觉得有什么,可落在外人眼里,就跟灰度发布没多久直接全量上线一样,想装低调都难。
傍晚的时候,风更舒服了,天色也一点点暗下来。
我们边收东西边继续扯皮,小马哥和伟源还在争最后那几把牌到底是谁拖了后腿,吵得跟两个服务在互相甩兼容锅。
我蹲下去收扑克牌,小璇在旁边把空瓶子和垃圾往袋子里装。她动作很麻利,明显比我们三个男的靠谱得多。我伸手想去提那个装杂物的大袋子,她看了一眼,直接说:
“那个重,你拿推车,这个我来。”
我本来还想说我来就行,她已经先提起来了。
小马哥站后面摇头:“看到没,这已经不是撒狗粮了,这是主流程都默认打包处理了。”
伟源也一脸痛心:“我现在严重怀疑,我们两个今天来这儿,主要是为了给你们这套双人系统当压力测试见证人。”
小璇听完,头都没抬,淡淡回了一句:
“你们要是羡慕,就少打点嘴炮,多做点实际开发。”
这话把我们三个人都给整笑了。
回程的时候,小马哥和伟源走在前面,还在争刚才那把王炸到底该不该出。我和小璇走在后面,步子慢一点。
深圳湾傍晚的风吹过来,人确实会舒服很多。
小璇偏头看了我一眼,问:
“现在好点没?”
我照例先嘴硬:“本来也没多差。”
她看着我,轻轻笑了一下。
“嗯,那你前几天那个状态,最多算界面没黑,后台已经快异常打满了。”
我没忍住也笑了,过了两秒,还是老实承认了。
“好点了。”
她点点头,没再说什么。
但就这两个字一落地,我心里那点一直绷着的东西,又松了一截。
有时候真挺怪的。
工作上的问题,你得自己一点点排,一行行改,一条条查;生活里的状态,反而常常是旁边那个人一句很轻的话,就能把你点醒。你才会承认:哦,原来我最近是真有点撑过头了。
晚上回去的地铁上,我靠着椅背,看着车窗里的自己,忽然发现脑子里的报警声真的小了不少。
项目当然还在。
周一到了公司,接口该调还得调,日志该看还得看,模型调用该抽风八成还会继续抽风。
这些问题一个都不会因为我今天出来露营打了几把掼蛋就自动消失。
但至少今天,我总算给自己清了次缓存。
人有时候真不能一直拿自己当永动机使。
项目可以持续跑,线程也得偶尔释放一下资源;服务可以扛压,机器也得有降温时间。
不然很多时候,系统还没挂,人先把自己跑到过热保护了。
我偏头看了眼旁边的小璇。
她正低头看手机,侧脸在车窗反光里很安静。今天早上她叫我起床、给我准备早餐、把我从床上和项目日志里一起薅出来,现在又坐在我旁边,像一个始终稳定在线的支撑服务。
我忽然在心里默默想了一句:
出来露营打这半天牌,不是我想摆烂。
是再不降级运行,我这人都快过热保护了。
而且说实话——
跟小璇住到一起以后,我这条总爱硬撑的主线程,确实比以前更不容易死了。