程序员的第一辆车:从选车到养车

Vim孤独患者
2025-12-19 06:54
阅读 1636

上周五下班前,深圳的雨下得跟我们项目上线那天一样大。我坐在工位上,盯着屏幕上那个还没合进去的 MR(Merge Request),心里却在盘算着周末要不要去试驾——不是新版本的 Springboot 应用,而是我人生第一台车。

是的,作为一个在国企混了快五年的程序员,我终于要买车了。

双休不加班的“奢侈”决定

很多人以为国企程序员就是喝茶看报养老。说实话,在深圳这片互联网热土上,哪怕是在体制内搞信息化建设,也逃不过“敏捷开发”“快速迭代”的裹挟。我们部门虽然名义上双休、基本不加班,但去年为了配合智慧城市项目上线,还是熬了几个通宵。好在领导还算开明,不会半夜三点在企业微信@你改 Bug,也不会在周五下午甩一句“这个需求很简单,明天上线”。

但正是这种相对稳定的节奏,让我有时间思考工作之外的事。比如:我是不是该有一辆车了?

坐标深圳,每天挤 1 号线像沙丁鱼罐头,早高峰的岗厦北站能让人灵魂出窍。腾讯、阿里、字节的园区扎堆南山区,打车软件高峰期溢价比我的年终奖还高。更别提去年双11期间,公司团建去大鹏,一行人拼车,结果司机师傅导航进了死胡同,大家在山路上推车推了二十分钟——那一刻,我看着路边一辆辆 Model 3 呼啸而过,心里默默发誓:今年,必须提车。

技术思维选车:参数党 vs 情绪价值

作为 Vim 党,我对“效率”和“可定制性”有种执念。写代码不用鼠标,配 .vimrc 能调一整天;同理,选车我也先拉了个 Excel 表格,横向对比续航、电耗、智驾芯片、座椅材质、甚至后备箱容积——毕竟以后可能要塞进露营装备,或者……搬家时当临时仓库。

但很快我就发现,买车不像 debug,不能光靠日志和指标。
第一次去试驾某国产新势力,销售小哥激情讲解“全域 800V 高压平台”“城市 NOA 能力”,我点头如捣蒜,心里却在想:“这不就是分布式系统的高可用架构吗?冗余设计+自动故障转移。”
可当我坐进驾驶座,启动瞬间音响轰鸣《加州旅馆》,空调自动调到 23℃,座椅记忆缓缓贴合腰背——那一刻,技术参数突然变得不重要了。原来成年人的快乐,有时候就是被温柔地“宠”一下。

最后我定了辆纯电 SUV,不是最便宜的,也不是性能最强的,但 OTA 升级频率高、APP 远程控车稳定、售后网点离公司地铁站步行十分钟。对,没错,我把“可维护性”和“服务 SLA”也写进了选车 criteria。

“你这哪是买车,分明是在做 SRE 架构评审。”同事老张看完我的选车清单后笑骂,“连轮胎品牌都对比了三款?”

养车如运维:监控、告警与优雅降级

提车那天,我给老婆发了条消息:“我们的‘生产环境’正式上线了。”她回了个白眼表情包。

但说真的,养车的过程,意外地和运维 K8s 集群高度重合。

监控系统:APP 就是你的 Prometheus

每天早上出门前,我会习惯性打开车机 APP,看一眼电量、胎压、剩余里程——这不就是 kubectl get pods 吗?有一次凌晨三点,手机突然弹出“胎压异常”告警(感谢 IOT 传感器),我立刻远程查看数据,发现右后轮缓慢泄气。第二天直接预约了附近门店,避免了高速爆胎风险。

# 伪配置:车辆健康监控规则
alerting:
  rules:
    - alert: LowBattery
      expr: battery_level < 20%
      for: 5m
      labels:
        severity: warning
      annotations:
        summary: "电量低于20%,建议充电"
    
    - alert: TirePressureLow
      expr: tire_pressure_rear_right < 2.2
      for: 10m
      labels:
        severity: critical
      annotations:
        summary: "右后胎压异常,请立即检查"

日常维护:CI/CD 式保养

传统 4S 店动不动就让你“每 5000 公里保养一次”,但我研究了官方手册,发现电车根本不需要换机油!于是我把保养项拆解成:

  • Daily: 检查充电状态、清理车内垃圾(相当于 logrotate)
  • Weekly: 洗车、检查轮胎异物(类似节点巡检)
  • Quarterly: 到店做高压电池检测、刹车系统校准(相当于季度安全审计)

最爽的是,现在支持“无感取送车”——我在公司敲代码,师傅上门取车,保养完再送回来。这体验,简直像用了 Argo CD 自动部署,完全无感。

故障处理:线上事故复盘会

上个月遇到一次“线上 P0 事故”:车子在地下车库突然无法启动,中控屏黑屏。我当时心跳飙到 140,脑子里闪过无数场景:是不是固件升级失败?BMS 通信中断?还是我昨天乱改了某个隐藏设置?

深呼吸三秒,我做了三件事:

  1. 查日志:翻看车载系统最近的操作记录(幸好有 audit log)
  2. 回滚:长按电源键 10 秒强制重启(相当于 kubectl delete pod --force
  3. 联系 SRE:拨打 24 小时客服,对方远程诊断后说是 12V 小电瓶亏电——原来前一天我忘了关车内氛围灯!

事后我写了份“事故复盘文档”,结论是:不要随意开启实验性功能,尤其是那些藏在二级菜单里的“开发者选项”。 这教训,跟当年在测试环境乱开 Springboot Actuator 的 /shutdown endpoint 一模一样。

从 Springboot 到方向盘:技术人的生活迁移

有趣的是,工作中积累的很多“软技能”,在买车养车过程中竟意外派上了用场。

比如需求分析:老婆想要大天窗,我认为全景影像更重要;最后妥协方案是选装 360° + 天幕(非开启式)。这谈判过程,简直像和产品经理撕 PRD。

又比如风险管理:刚提车那周,我每天开车都像在跑混沌工程——故意走烂路测悬挂、深夜开高速试 AEB、甚至模拟“充电桩故障”场景练习应急方案。同事笑我 paranoid,但经历过线上 MySQL 主从切换失败导致服务雪崩的人,懂什么叫“敬畏生产环境”。

最深刻的体会,其实是心态转变

以前写代码,总想着“一次到位”“零缺陷”。但车这东西,不可能永远完美。雨刮器偶尔异响、语音助手识别错指令、冬天续航打七折……这些“已知 issue”,只要不影响核心功能(安全抵达),就学会容忍。生活不是单元测试,不需要 100% 覆盖率。

给 fellow 程序员的几点建议

如果你也在考虑人生第一台车,结合我这半年踩坑经验,分享几点“非技术但实用”的心得:

维度 新手误区 建议
购车时机 等“完美车型”发布 先解决“有没有”,再优化“好不好”
保险配置 只买交强险 必加三者 200 万 + 车损 + 医保外用药
充电策略 总想充满到 100% 日常用 20%-80%,长途再满充,延长电池寿命
心理预期 期待“永不故障” 接受小毛病,重点保障安全冗余

另外,别信“程序员适合买特斯拉”这种刻板印象。我认识的 DevOps 工程师开五菱宏光 MINI EV 上班,后座塞满服务器配件;前端大佬开着比亚迪海豹,中控屏装了自研 Dashboard 显示实时股票和 GitHub commit 数。工具为人服务,不是人伺候工具。

写在最后:方向盘后的诗和远方

昨天晚上,我又加班到九点。不过不是修 Bug,而是帮实习生 review 一道 Springboot 面试题:“如何实现优雅停机?”
走出写字楼,深圳的夜风带着咸味。坐进车里,没急着发动,而是放了首陈奕迅的《沙龙》。
仪表盘幽幽亮起,导航自动规划回家路线——没有 deadline,没有 Jira ticket,只有雨刮器轻轻摆动,像在打拍子。

突然觉得,所谓成长,或许就是从“拼命证明自己能搞定所有 exception”,到“允许世界偶尔抛个 RuntimeException,然后从容 catch 住它”。

这台车,载的不只是我和家人,还有那个曾经以为“只有代码才值得全力以赴”的自己。

现在,我学会了在堵车时关掉工作群通知,打开音乐,慢慢等绿灯。

毕竟,人生不是 CI 流水线,不需要 always green。

偶尔 red,也挺真实。

评论 0

最热最新
暂无评论
Vim孤独患者Lv.1
0
影响力
0
文章
0
粉丝