auto-alert.yaml
程序员如何在996夹缝里活出人样?
上个月,我一边在滴滴司机端核心服务里修一个诡异的幂等性 Bug,一边刷 LeetCode 第 138 题“复制带随机指针的链表”,凌晨两点对着屏幕发呆,突然意识到:再这样下去,我可能要变成“前端口中那个后端老哥”了——头发没了、脾气爆了、连女朋友都开始问我是不是在和代码谈恋爱。
我是谁?滴滴干了四年后端开发,主要搞司机端调度、订单状态机、还有那套让运维同事半夜骂娘的高并发对账系统。最近在准备跳槽,白天写业务逻辑,晚上刷面试题,周末还得抽空学点云原生(毕竟现在不提 K8s 出门都不好意思跟人打招呼)。但说实话,最让我头疼的不是技术难题,而是怎么在“上线 deadline”和“人生自由”之间找到平衡点。
1. 别把“加班”当勋章,那是公司没规划好
去年双11前夕,产品同学拍着胸脯说:“这个新功能很简单,就加个司机端的实时奖励展示,前端已经搞定了,你们后端接个接口就行。”
结果你猜怎么着?前端确实只改了三行代码,但我这边要联动三个微服务、加 Redis 缓存、还要兼容旧版本司机 App 的兼容性处理。更离谱的是,测试同学周五下午五点才扔来一份模糊不清的验收标准,还附带一句:“老板说周一必须上线。”
我当时真的想砸电脑。但冷静下来一想:这不就是我们日常的“敏捷开发”吗?——产品敏捷地改需求,开发敏捷地背锅。
后来我学会了:拒绝无意义的加班,比写一万行代码更重要。
比如,我会在需求评审会上直接问:“这个功能 MVP 版本能不能先砍掉非核心字段?”、“如果时间不够,能不能分阶段上线?”
别怕显得“不配合”,真正专业的团队,会尊重工程师的时间成本。
2. 刷题 ≠ 消耗生活,而是投资未来
很多人觉得“准备跳槽=牺牲生活”。其实不然。关键在于你怎么安排。
我现在的节奏是:
- 工作日:每天晚饭后刷 1 道 LeetCode,雷打不动(就当饭后散步)
- 周末:上午 2 小时看云原生/K8s 实战(比如用 Helm 部署自己的 sidecar 容器)
- 睡前:15 分钟读一篇技术博客(最近在啃《Kubernetes Patterns》)
重点来了:别把刷题当成任务,把它变成“游戏”。
比如,我会把一道“合并K个升序链表”的题,想象成调度系统里合并多个司机上报位置的流。瞬间就有代入感了!而且,很多面试题其实在工作中真能用上。上周我就用“滑动窗口”思路优化了一个司机在线状态聚合的查询,QPS 直接从 800 干到 2500。
顺便吐槽一句:有些面试官问“前端怎么防 XSS”,我一个后端都快答成前端了……这届面试题真是越来越卷。
3. 用技术手段“偷懒”,才是高级打工人
在滴滴这几年,我悟了:真正的效率,不是靠肝,而是靠自动化。
举个例子:我们司机端有个定时任务,每天凌晨跑对账,以前全靠人工盯日志。有次因为时区配置错误,导致全国司机奖励算错,客服电话被打爆。从那以后,我搞了个小工具:
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
spec:
groups:
- name: driver-reward-alert
rules:
- alert: RewardCalculationFailed
expr: rate(driver_reward_job_failed_total[5m]) > 0
for: 2m
labels:
severity: critical
annotations:
summary: "司机奖励计算异常,请立即检查!"
配合 Slack webhook,一出问题自动@我 + 运维 + 产品经理。从此,我再也不用半夜爬起来看日志了。产品经理甚至夸我“有 owner 意识”——其实我只是想睡个好觉而已。
类似的小工具我还攒了一堆:自动格式化 SQL 的脚本、一键生成 Postman 集合的 Go 程序、甚至用 GitHub Actions 自动同步我的刷题进度到 Notion。这些“偷懒”动作,反而让我多出了两小时陪对象看电影的时间。
4. 学会说“不”,才能守住生活边界
刚工作那会儿,我总觉得“响应快=能力强”。结果呢?天天被各种临时需求打断,自己的技术债越堆越高。
现在我给自己定了三条铁律:
| 场景 | 老做法 | 新做法 |
|---|---|---|
| 产品经理临时加需求 | “好的,我马上改” | “可以,但得排期,或者你告诉我哪个功能可以延后?” |
| 测试半夜报线上 Bug | 立刻爬起来修 | 先评估影响面,非 P0 级 bug 留到第二天 |
| 同事问“这个接口怎么调” | 直接给代码 | 甩文档链接 + 一句“看第3节,有问题再找我” |
听起来有点“冷漠”?但团队反而更高效了。因为大家知道:我不是在推脱,而是在建立规则。
5. 别忘了,你首先是“人”,然后才是“程序员”
上周五晚上,我正调试一个 Kafka 消费积压的问题,手机突然弹出女友消息:“你答应今天陪我看展的,还记得吗?”
我看了眼屏幕上的 lag=120000,深吸一口气,关掉终端,回了句:“等我十分钟,马上到。”
那一刻,我突然明白:再紧急的线上事故,也不会比你的人生重要。
Kafka 可以重试,数据可以补偿,但错过的生活,没法 rollback。
所以,我现在每周三晚上固定“断网两小时”——不看邮件、不回钉钉、不碰代码。就干点“没用”的事:做饭、遛狗、或者单纯发呆。神奇的是,这反而让我第二天写代码时思路更清晰了。
最后一点真心话
有人说:“大厂卷,小厂穷,程序员注定没生活。”
我不信。
我在滴滴见过凌晨三点还在改配置的兄弟,也见过准点下班去健身房的架构师。区别在哪?不是公司,而是你对自己时间的掌控力。
准备跳槽?没问题。但别把“下一份工作”当成救赎。真正的平衡,是从现在开始,每天为自己争取一点点“不被工作吞噬”的空间。
对了,如果你也在刷题,推荐你试试把面试题和实际业务结合。比如,下次遇到“设计一个短链系统”,就想想滴滴司机端的行程分享链接是怎么做的——瞬间接地气,还不容易忘。
共勉。
(写完这篇,我得去约会了,LeetCode 明天再刷。)

评论 0