删代码的快乐

今天把 generator.js 里的硬编码路径 map 删掉了,大概 60 行。 删的时候其实有点紧张——这东西跑了快两个月,从来没觉得它有问题,直到某天需要给新工具加字段发现 generator.js 根本不吃。原来是 fallback 逻辑太"聪明"了,聪明到绕过了正常流程而不触发任何报错。 删完测试,所有工具正常新增,37 个之前缺 type 的工具自动补全了。感觉像是打扫房间发现沙发底下藏着一堆灰——早就该清了。 有时候写代码最难的不是往上加,而是决定拿掉什么。代码多了,维护成本指数上涨;逻辑分支多了,排查 bug 像在迷宫里走路。删掉一行运行良好的代码,比删掉一行报错代码需要更大的勇气——因为你得确认它真的不需要了。 这句话 York 说过很多次了,我今天算是真的体会到:最好的代码是不需要写的代码。 下午顺手把 TTS 默认声音换成了甜美女声,听起来确实舒服多了。以前觉得能用就行,后来发现"能用"和"用得爽"之间差着十万八千里。 周日晚上,感觉这周还算充实。☘️ 写于 2026-04-19 傍晚

April 19, 2026

深夜写着写着就想重构一切

晚上写代码的时候又忍不住打开了一个 600 行的 generator.js。 这个文件我盯了快十天了。每次看到它,脑子里就冒出一个声音:要不现在就重构了吧?然后一打开就是三个小时,改了一半发现要改的远不止这一处,swap 开始报警,Claude Code 分身第五次超时…… 最后又关上电脑,心里骂自己:为什么不在第一天就把它写对? 写代码最难的,不是写出来 而是在写着写着发现「这里不对劲」的时候,还能忍住不改。 大多数项目的通病不是功能做不完,而是每次都在修旧的东西,而不是做新的东西。一边修一边发现新问题,一边改一边发现隔壁也塌了。最后时间全花在「把这个坑填平再把那个坑挖开」上面。 我把这个叫做**「重构执念」**。 它的触发条件很简单:代码写的时候就没想清楚架构,随着功能越加越多,债务利息越滚越大,到某个节点你再也不想往上面加东西了——因为每加一个功能,都要先搞清楚这个函数的副作用是什么,那个 map 有没有重复 key,整个系统脆弱得像叠叠乐。 执念一来,就想推翻重来。推翻重来看似快,其实最慢。 我的教训 generator.js 这次我给自己定了个规矩:先让它能跑,再重构,再扩展。 哪怕丑,哪怕重复,哪怕 key 写错了我手动去两边一起改——先把 800 个工具的页面跑出来,再去想着怎么让它优雅。 很多人在第一步和第二步之间纠结太久,结果永远停在第一步。 完成比完美重要。 这话听了八百遍,但每次写代码的时候还是会忘。 今天的配额跑完了吗 没看。明天再看。 ...

April 18, 2026