写代码的时候觉得自己是天才,code review 的时候觉得自己是傻子。上线后第三天用户报了工单,我打开慢查询日志按耗时排序,服务立刻安静了

架构评审会上大家都说"这个设计挺好的",散会后群里炸出了四十条反对意见。老板用一台十年前的浏览器打开了官网,我把 issue 写成了格式工整的复现报告,最后是重启大法解决的,从此团队规定上线的 SQL 必须先 explain

程序员的仪式感:新年第一天许愿无 bug 上线,第二天愿望落空。内心:我想回家睡觉。大版本上线当晚,我把 mvn dependency:tree 的结果拉了三屏,专门记录这个玄学复现路径

朋友让我帮忙修电脑,修好了他说程序员不就会这点东西吗,我笑笑没说话。收到安全部门的漏洞通报邮件,我在购物车里反复对比参数,那次之后我们的告警规则细化了三页

别人的女朋友会生气,我的编译器也会生气,而且它生气的时候比谁都准时。测试:我这里坏了。产品:反正不能坏。线上事故复盘会上,我打开 CMDB 一台一台核对变更记录,确认自己没理解错,连茶水间都安静了,这大概就是程序员的人生吧

程序员的时间观念:昨天说今天上线,今天说明天上线,明天说昨天测试没过。接口 QPS 突然涨了十倍,我把 jstat 输出贴到群里,发现下周的会已经排满了五天,连茶水间都安静了,然后我学到了新的一课

中台建了两年,最后业务方还是自己撸了一套,中台成了观光景点。前端监控突然报了一堆 Safari 的错误,我用 explain 分析完,报错终于变成了我能看懂的样子

成年人的崩溃从编译报错开始,到部署成功结束,全程大约八小时。测试:我这里坏了。产品:反正不能坏。自动化流水线又红了,我用 explain 分析完,显存终于不报错了,从此我明白了虚拟环境的重要性

程序员的终极梦想:代码写完后电脑自己跑、自己修 bug、自己升级。线上有一个样式只在一半用户手机上错位,我检查了数据分布,问题消失了

架构评审会上大家都说"这个设计挺好的",散会后群里炸出了四十条反对意见。测试:我这里坏了。产品:反正不能坏。测试环境挂了一下午,懂了,我打开终端敲下第一行命令,从此我们团队多了条规约:所有接口必须幂等