拓冰建站拓冰建站
首页 / 资讯中心 / 正文

凌晨三点,我盯着一个空格看了二十分钟

昨天加班到凌晨改一个线上偶现的 NPE。排查了两个小时最后发现是配置文件里一个 value 后面多了一个全角空格。就一个空格。我把椅子往后一推盯着天花板发了十分钟呆脑子里反复循环一个念头我本科 985研究生 211学了四年计算机写了六年代码最后被一个空格卡了两个小时。你说这事说出去谁信。但仔细想想这六年里真正让我崩溃的从来不是什么高并发、分布式锁、JVM 调优。是那些没有技术含量但就是搞不定的东西。比如本地跑得好好的部署到测试环境就 502。查了一圈最后发现是 Nginx 配置里proxy_pass后面少了一个斜杠。比如接口偶尔超时日志里啥也没有最后排查三天发现是某个同事偷偷加了一个Async但线程池没配默认用的SimpleAsyncTaskExecutor每次请求都新建线程高并发直接炸。比如你信心满满提了个 MR代码写得工工整整设计模式用得明明白白结果 code review 的时候组长来了一句这个需求下周三砍了不用做了。那一刻你的代码就像一段被注释掉的dead code安静地躺在分支里没人会再 merge。有时候我觉得程序员这个职业很像是在跟一个永远不会给你完整需求文档的产品经理谈恋爱。你永远不知道下一秒会发生什么。上午还在讨论技术方案下午需求就变了。昨天说好的接口字段今天产品说我们跟甲方又对了一下这里要加个字段。你问加什么字段他说还没定你先预留一下。预留。这俩字简直是程序员职业生涯里听到过最恐怖的词。预留多少预留什么类型预留到什么时候没人知道。你只需要知道这个字段大概率永远不会用到但如果你不预留上线那天一定会出问题。这就是所谓的防御性编程——不是防 bug是防人。前几天刷到一个帖子一个老哥说他 35 了被优化了。评论区清一色的加油会更好的但底下最高赞的回复只有一句话兄弟你上次认真看自己的简历是什么时候我看完沉默了很久。因为我也很久没更新过简历了。不是不想是不知道写什么。写精通 Java我自己都不信。写熟悉 Spring Boot那玩意儿不就是Autowired加RestController吗。写有丰富的项目经验什么项目经验不就是 CRUD 换了七八个业务场景反复写吗。你让我写代码我能写一天你让我写简历我对着屏幕能发呆两小时。这大概就是程序员的通病——我们擅长跟机器沟通但不擅长跟人介绍自己。不过话说回来这行干了这么多年也不是没有收获。最大的收获可能是学会了接受不完美。刚入行的时候写代码有洁癖。变量命名必须语义化方法不能超过 30 行类必须单一职责注释必须写清楚。现在呢能跑就行。不是不想优雅是真的没时间。需求排期卡得死死的今天写完这个明天还有三个需求等着你在这纠结命名规范产品经理已经在催进度了。有时候想想代码质量这个东西本质上是一个资源分配问题。你有时间你就写得漂亮。你没时间你就写得能跑。而大多数时候我们没有时间。前几天一个学弟问我哥你觉得程序员能干到多少岁我说不知道但我知道一件事——只要你还愿意在凌晨三点因为一个空格 debug 到崩溃然后第二天照常打开 IDE 继续写代码你就还能干下去。不是因为热爱是因为习惯。就像你每天打开电脑第一件事是git pull下班前最后一件事是git push。中间那段时间你写代码、改 bug、开会、摸鱼、点外卖、喝咖啡。日复一日。没有什么波澜壮阔没有什么改变世界。就是一个个需求、一次次部署、一个个 bug 堆出来的日子。但偶尔某个深夜你盯着屏幕上终于跑通的测试用例绿色的PASS一个一个亮起来的时候你会觉得——嗯今天还行。明天继续。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门