能自动化的,就别手动做第二遍
我给自己定过一条很土的规矩:同一件事做到第三遍,就停下来写脚本。
第一遍是学习,第二遍是验证,第三遍开始就是纯粹的浪费——而且是有成本的那种浪费:每次都会漏一步,每次都要重新回忆上次怎么做的。
什么算「值得自动化」
不是所有重复劳动都值得投入。我一般看三个条件,满足两个以上才动手:
- 频率高于每月一次:一年做两次的事,写脚本的时间永远赚不回来。
- 步骤固定:如果每次都要临场判断,脚本只会变成更难维护的手工活。
- 出错代价高:复制粘贴最容易错位,这类工作哪怕低频也应该脚本化。
我会先写「最小版本」
不搭框架、不做配置、不写文档,先写一个能跑通的单文件脚本。跑通了再考虑要不要抽象——大多数脚本跑通之后就不需要重构了,因为它只服务我一个人。
真正需要抽象的,是那些每天都要跑、结果要给别人看的东西。那时候我会把日志、失败重试、通知补上,因为出问题时没人帮我盯着。
一个反例
我曾经为「自动生成周报」写过一个两百行的脚本,结果每周的周报结构都在变。后来我把它砍成三个固定查询加一段手写总结:脚本只负责取数,判断和措辞还是人来。省下的时间差不多,但维护成本低太多。
自动化的目标不是「全自动」,是「把时间花在只有人能做的事上」。