十一点四十,楼下的车流从三秒一辆变成一分钟一辆。这个变化比任何提醒都准。我知道该关电脑了,但我知道我不会。
房间里的声音只剩三个:机箱风扇的低频嗡鸣,键盘的塑料回弹,还有冰箱每隔七八分钟启动一次的抽气声。白天它们都不存在,被电视、被楼道的脚步、被手机通知盖掉了。夜里它们浮上来,像水退下去以后露出来的石头。
屏幕是唯一的光源
顶灯关了——它会在屏幕上留一层灰白反光,让黑色变成灰色。台灯也关。整间屋子只剩一块亮着的矩形,边缘微微发青。
这时候代码看起来和平常不一样。白天它是一堆要处理的活儿:这个接口改字段,那个组件加 loading,issue 排在那里。晚上它变成一段有节奏的东西,缩进是呼吸,空行是停顿。
我不觉得这是”高效工作”。恰恰相反,晚上写代码是最没有效率的:我会在一个变量名上停四分钟,会为对齐两个空格重排整段,会明知这段能更简单但就是不想动。
一点半的那个提交
十一点半我通常已经写完当天的活了。真正发生的事在十二点以后:我开始改那些白天没空管、不紧急、也没人要求的角落。
把那个 80 行的函数拆成三个。给内部工具加一组快捷键。盯着一个 403 查四十分钟,最后发现 token 前面多了一个空格。
这些事不会有 KPI 奖励。第二天早上打开 git log,看到昨晚自己的提交时间:01:37,下面一行小字 fix: remove trailing whitespace in header token。不风光,但那一刻确实舒服——房间里没有第二个人,没有人在等回复,你面对的是一个完全讲理的系统:给输入,出输出,没有情绪。
孤独是不高级的
我不太同意把深夜工作写成浪漫的事。
孤独很真实,而且不好看。我认识几个这个点也醒着的人,唯一联系是偶尔互相点开对方博客看有没有新文章。有一次凌晨两点,我在一篇旧文下面收到一条留言,只有一句”这个坑我也踩过”。我们谁都没多说。
那种时刻确实让人觉得没那么孤单,但它不解决任何问题:第二天还是眼睛干,还是靠两杯咖啡。
早上看见昨晚的自己
第二天的流程很固定。七点二十闹钟响,洗漱时还在想昨晚没想明白的边界条件。坐下先看 git status。
有时会后悔:昨晚改的东西现在看很难看,命名随意,注释写了一半,“TODO: 这里先这样”,然后就没有然后。我一条条改回来,心里骂了昨晚的自己两句。
也有时会惊讶。有一段逻辑我完全不记得自己写过,它比我现在能写的更绕但更准,注释里留着一句”这里不能用 reduce,会三次遍历”。
那时候我意识到一件事:深夜把我变成了另一个作者。那个人耐心、固执、不考虑交付时间,只考虑这件事该怎么做对。他写的东西我要花一个上午才看懂,但比我白天写的好。
所以我大概还会继续这样。不是因为它健康——它不健康;也不是因为它高效——它不高效。只是因为一天里,只有那两个小时,房间里没有别人,没有别的声音,没有别人想要的答案。
十一点四十的车流变成了一分钟一辆。我又该关电脑了。