公司动态
有些程序能跑,但你知道它其实在裸奔
有些程序能跑但你知道它其实在裸奔最吓人的程序不是跑不起来的是跑起来了、演示过了、客户点了头而你心里清楚它在裸奔。没有像样的错误处理。没有边界检查。依赖某个巧合时序。看门狗像装饰。日志在关键路径上是瞎的。外面看灯是绿的。里面像没系安全带上了高速。年轻时我会把这种状态解释成「先交付再优化」。话并不全错工程里确实有阶段。可若「再优化」从来排不上号裸奔就会转正成为默认体质。默认一旦形成后来者会以为本来就该这样连羞耻感都省了。更麻烦的是裸奔程序常常有运气保护。实验室电压稳客户操作规范温度刚好于是它能撑很久。撑久了所有人会误以为它健康。等某一天组合条件变了炸开的现场会非常难看——因为信任已经建立崩塌就更响。信任这东西建起来靠周数塌下去靠分钟。我经手过一份代码功能完整注释还挺多。真往下看通信接收默认成功失败分支空着重试逻辑写了个样子。我问原作者他说当时赶演示。演示都过去大半年了。债务还在利息是后来人的夜晚。注释写得越认真越像给裸奔穿了件体面外套。还有一种裸奔更隐蔽看起来有检查检查却总返回“好”。阈值写了从不用。超时写了大到等于没有。断言在发布版被宏关掉。你读代码会觉得作者很谨慎跑起来才发现谨慎全是摆设。现在我会把「能跑」和「能托付」分开看。能跑是最低礼貌。能托付是它在脏环境里仍有行为可预期出问题能被看见能被限制伤害。这标准一提高进度会难看一些。老板未必喜欢。可我见过太多「好看进度」背后的裸奔最后以更难看的方式收款。也不是每个模块都要做成航天级。资源紧、周期紧时要做的是坦白哪里在裸奔裸奔的代价是什么什么时候必须穿衣服。把裸奔说成已知风险和把裸奔藏进乐观里是两种道德。前一种至少还把人当成年人后一种是在赌运气还让别人一起赌。AI 写代码之后裸奔可能更隐蔽。生成的代码常有完整骨架读起来像穿了衣服仔细看扣子没扣风一吹就开。审查如果只看「像不像正式代码」很容易被骗。你得逼自己问失败了会怎样断电了会怎样对方胡来会怎样问不出来就先别合入。所以我怕的不是程序丑是程序装像样。丑至少诚实。装像样的裸奔杀伤力更大。你心里有没有一份自己知道在裸奔、却还在线上活着的东西有的话你大概也懂那种睡不踏实。