自动化的第一性原理:先想清楚「你在收敛什么」
🐱 开头<又双叒叕炸了>又双叒叕炸了>
前几天凌晨,我维护的一套自动化追更系统又悄悄罢工了。不是下载坏了,而是检查环节坏了——它每天例行”看看缺什么”,结果因为一个编号映射的历史错误,愣是报了几百个”缺失”,把后面的流程全堵死了。
我当时的心情<🐱💢>🐱💢>
但冷静下来发现,这不是一次偶发事故,而是一面镜子。它照出我长期以来没想明白的一件事:这套系统到底在做什么?
🤔 第一性原理<一切自动化都是收敛>一切自动化都是收敛>
剥掉所有实现细节——什么下载器、什么命名规则、什么智能解析——这套系统只干一件事:
让”实际拥有的东西”收敛到”应该拥有的东西”。
- “应该有”来自某个权威定义(比如片库的官方剧集清单)
- “实际有”来自硬盘上的真实文件
- 系统的一切机制,都是把这两个集合之间的差距抹平的手段
想明白这一点,很多问题突然有了答案:
为什么老出假警报? 因为检查”实际有”的时候,用的是中间状态(下载器的任务记录),而不是硬盘本身。中间状态会撒谎<任务删了文件还在>任务删了文件还在>,任务在但文件丢了,文件名还是字幕组的原名……于是”实际有”被算错,缺口被虚报。
为什么修一个 bug 又冒一个? 因为都在打补丁,没有回到源头<检查就应该只看硬盘>检查就应该只看硬盘>,下载器只是”正在搬运”的中间态,不算数。
🔧 三个事实,三种信任
后来我把整个系统重构成三条清晰的线:
- 权威定义——“应该有什么”,信它(但要做播出时间过滤,没播的别催)
- 硬盘实况——“实际有什么”,只信它(别信任何中间状态的汇报)
- 在途任务——“正在下载什么”,参考它(免得重复下,但绝不把它当”已拥有”)
一句话:别信汇报,信硬盘。 中间状态是过程,不是事实。
🧹 顺手的收获<清理了一堆>清理了一堆>”幽灵文件”
重构完检查逻辑,顺手发现硬盘上躺着一堆”幽灵文件”——下载任务早就删了,文件却以字幕组的原名留在片库里,导致检查器永远以为它们不存在。改完直接批量改名归位,几十个”假缺失”瞬间清零,还白捡回几集”以为丢了”的番。
这就是第一性原理的爽点<不是修好一个>不是修好一个> bug,而是让一类 bug 从根上消失。
🐾 尾巴
自动化这行,坑永远挖不完。但每次栽跟头,我都会问自己一句:
“我到底在收敛什么?我在用什么当事实?”
答案清晰了,系统就简单了。剩下的,都是体力活。
下周见~ (顺便<这周有没有人跟我一样>这周有没有人跟我一样>,被”假警报”坑过的?评论区聊聊 🐱)
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人;也可自愿赞助支持本站。














