(修订于 20260726)
软件是活的,需要持续迭代,迭代越频繁,生命力越强。若失去开发团队的更新、维护,这款软件也就僵死了。
刚入行时,我参与过一个内部系统,上线后几乎不再改动。头几个月还好,渐渐地,各种小毛病像墙角的蛛网一样堆积起来。用户抱怨,但没人有时间去修;依赖的库一个接一个过时,安全补丁也懒得打。某天,服务器重启后它干脆跑不起来了。没有人惋惜,就好像它从未真正活过。
真正有生命力的软件,会跟着世界一起变化。你能从它的 commit log 里读到一种呼吸般的节奏:新功能像枝叶一样伸出来,旧逻辑被修剪得更优雅,偶尔有虫子被捉住,偶尔也添上几行更清晰注释。每一版发布,都是一次生长。有些项目甚至让人感觉,就算最初的那批维护者离开了,代码本身还保留着一种生长的惯性——后来的开发者接过手,继续浇灌、继续重构,它便一直活着。
这让我想起一个朋友,从大学毕业后进了一家很安稳的单位,十年如一日地做同一件事。每次聚会,他总会说起当年多么厉害,但话里的东西从不更新。慢慢地,我们不再有共鸣。他好像被停止迭代了,困在了自己的某个版本里。我不知道他自己是否察觉,但旁人能感到一种缓慢的僵化,像一块不再流动的水,安静得让人心里发紧。
其实人也是这样。泥于现状,顽固执拗,刚愎自用,便会不知不觉落入一潭寂静又绝望的死水,慢慢腐败变质。而愿意持续学习、不断推翻昨天自己的人,身上总带着一种流动的活气。他们可以犯错,可以修正,可以接纳新的想法,就像一套优雅的软件架构,允许局部重写而整体不倒。这样的人,哪怕走得慢,也是一直在走。
生命是流动的。这应该是“生”的本意。《易》曰:“天地之大德曰生。”这“生”不是静止的存在,而是不停地化育、变动、更新。一株植物向上生长时,你不知道它下一秒会从哪里冒出新的嫩芽,但那股力量一直在涌动。软件如此,人也如此。只要我们还愿意迭代,就始终活着。