全部文章

锤言锤语

山海皆可平:从郑钦文战胜萨巴伦卡,看程序员如何突破“技术封印”

本文另有英文译文 · 阅读英文版 →

郑钦文晋级罗马站四强的社交媒体截图

5月15日,罗马1000赛,郑钦文2-0击败世界第一萨巴伦卡。 比分干净利落:6-4,6-3。 

她此前六战全败,但这次,她赢了。

而我,正看着我的deployment的pipeline,又没有部署成功,这到底哪个配置不对啊!!!

  1. 程序员的“萨巴伦卡”

 

你有没有遇到过这样的问题? 

一个Bug,你修了三次,用户每次都能发现问题(别提了,说多了都是泪)。

一段祖传代码,没人敢动,每次改需求都像在雷区蹦迪。

一个技术方案,你提了三次,每次都被更“资深”的人否决。

久而久之,你会开始相信:“这问题无解。” 

就像郑钦文前六次面对萨巴伦卡时那样——她不是没努力,但每次都被对手的重炮发球和暴力正手压制。赛后采访,记者问:“你觉得她最难对付的地方是什么?” 郑钦文没有抱怨“对手太强”,而是说: “我还有很多地方没做好,下次我会试试新的策略。” 这句话翻译成程序员语言,就是: “这个Bug我还没修好,但我会多调试几遍,争取把所有的场景都考虑到。”

  1. 真正的突破,不是奇迹,而是复利

 

郑钦文这次赢在哪里? 

  • 一发成功率75%(以前只有60%) 

  • 底线回球成功率接近60%(以前被压制到40%) 

  • 变节奏、打落点(不再硬碰硬)

 

郑钦文在赛场上庆祝得分

不是什么“天赋爆发”,而是靠调整策略+执行细节。

就我今年年初优化的一个流程,从头梳理流程才发现,真正的瓶颈不在代码层,而是我们用的Dashboard完全忽视了AWS Lambda冷启动的时间,给我们提供了错误的benchmark。几个lambda加起来超过四秒,难怪用户抱怨慢,我们说看数据挺好的啊。

这不是奇迹,而是复利。 郑钦文每天练300个发球,但比赛只需要10个好发球。 作为程序员写100行代码,可能只有10行是关键路径。 但少了那90行的优雅的错误处理,系统一样会崩。

  1. 技术人的“破发点”

 

网球比赛最刺激的时刻,是破发点—— 对手再赢一分就能拿下这局,而你,必须顶住压力逆转。 

程序员的“破发点”是什么? 线上故障,所有人都在电话里等待你马上解决问题。 

郑钦文这次面对破发点时,挽救率72%(WTA平均56%)。 她没靠运气,而是: 

  • 预判对手球路(分析日志) 

  • 调整击球策略(优化逻辑) 

  • 稳健执行(不慌,不硬刚)

 

这和我们修Bug的逻辑一模一样: 复现问题(看日志、抓请求);定位根因(是缓存?是锁?是多线程?);稳健修复(别急着上补丁,先想清楚)。

  1. 重构,不是推翻,而是进化

 

郑钦文这次最大的变化,是她不再被对手节奏带走。 

以前,萨巴伦卡的重炮抽击能直接打穿她的防守。 这次,她用切削、变线、放短,把比赛带进自己的节奏。

程序员面对老系统时,常常陷入两种极端: 不敢动(继续打补丁,直到系统变成“屎山”)或者全推翻(重构半年,上线即崩溃)。

但郑钦文告诉我们: 真正的稳定性,不是不动,而是能动而不乱。软件系统有序进化才能够真正给用户带去价值。

从郑钦文突破到程序员突破技术封印的主题插画

  1. 山海皆可平,不是鸡汤,是做事的态度

郑钦文的胜利,不是在领奖台那一刻决定的。 而是她在体能训练时多跑的那5组折返跑;发球练习时多调的2度拍面角度;录像分析时多看的半小时对手战术。

程序员的突破,也不是在技术大会上侃侃而谈的那一刻。 而是在: 凌晨两点,你终于抓到那个偶现Bug的复现条件;周末加班,你重构的代码第一次通过全部测试用例;代码评审,同事说:“这个设计很巧妙。” 

真正的胜利,是证明你没白熬那些夜。

而真正能平山海的,从来不是工具,而是我们面对问题时不肯退场的那份笃定。