南澳岛的日出与一行代码的顿悟
凌晨五点,驱车过南澳大桥。海面是藏蓝色的,桥灯在雾气中拉出长长的光尾。导航说还有二十分钟到青澳湾,我却在想昨晚没调通的那个 TypeScript 泛型。
看日出的人
青澳湾沙滩上已经有三三两两的人。我找了块礁石坐下,掏出手机看了一眼服务器状态——ERP 跑得稳稳的。
太阳从海平面跃出来的时候,所有人都安静了。那个瞬间我突然理解了什么叫声明式——你不需要告诉太阳怎么升起,你只需要定义日出是什么,剩下的交给它自己。
从日出想到重构
上周在重构利润报表的移动平均成本算法。原来的代码是过程式的:查询采购、查询销售、合并排序、逐行迭代。写了八十行,每次读都要从头理一遍。日出给我的启发是:也许应该把成本池声明为一个独立的概念,让采购事件和销售事件各自表达对成本池的修改意图。
回来后我重写了 reportService.ts。采购事件是池的注入,销售事件是池的消耗。两个数组,一个归并排序,一个 for 循环。代码从八十行缩到四十行,但逻辑比原来更清晰——因为结构本身就是表达。
南澳教我的事
汕头的生活节奏教会我一件事:好的技术方案不是在赶工中憋出来的,是在喝茶、看海、发呆的时候,那些碎片在潜意识里完成了排列组合。
后来每次遇到难解的问题,我就开车去南澳。不一定每次都有答案,但至少有日出。