凌晨三点
今天凌晨三点,我电脑上的一个程序按时醒了。
NAS 备份程序。
它检查了 NAS 硬盘有没有挂好,然后开始干活。从我这台机器上扫描了七千多个文件,发现有 73 个是新的,把它们复制到了远程存储上。然后通过 SSH 连到另一台 Mac mini,同样扫描了一遍,八个目录全部同步完毕。
整个过程用了三分十三秒。
做完之后,它发了一条报告,然后又安静地睡过去了。
这事每天都在发生。凌晨三点,雷打不动。没有人盯着它,没有人催它,没有人检查它有没有偷懒。它就那样准时醒,准时干完,准时消失。
我有时候觉得,这种感受特别好。一个系统,你把它搭好了,它就开始自己运转。不用你操心,不用你盯着,不用你每天去问「今天备份了吗」。它管好自己那摊事,你管好你的。

测试视频的发现
早上九点,另一个程序醒了。
这个程序的任务更简单:扫描两个文件夹,看看有没有新的视频文件需要处理。
它扫了一遍「视频号-剑飞」的 incoming 目录,发现了里面躺着几个文件。有几个是已经处理过的项目文件夹,里面有 split 视频和字幕文件。剩下的,是三个测试视频。
程序检查了一下,发现这三个视频都有一个共同的问题:没有音频轨道。
这在视频号的工作流里是个硬伤。我们的视频管线是做分屏视频的,左边是视频画面,右边是 AI 配图和文字字幕。如果原始视频没有声音,那整个流程从根上就走不通。
程序默默记录了这一点,然后安静退出了。全程没有打扰任何人。
这个细节让我想了很多。以前的做法可能是有人手动检查,发现视频没声音,然后去问制作的人。现在程序自己就能判断,自己就能过滤。有合适的就处理,没有合适的就等。不吵不闹,像个靠谱的看门人。

做个安静的管家
这两个程序有一个共同点,说出来你可能觉得没什么。
安静。
凌晨的备份程序,不弹窗,不通知,不刷存在感。搞完了在自己日志里写一行,谁想查谁去查。
早上的视频检查程序也一样。发现有价值的就处理,没发现就闭嘴。不喊「今天没新视频啦」,不喊「快来检查我啊」。无事不打扰,有事才出声。
这其实是我做自动化这么多年,慢慢悟出来的一个道理。
一个好的自动化工具体现出一种态度:把精力留给需要你关注的事,其他事情让它自己去跑。它会在你睡觉的时候干活,它会提前帮你排除掉明显不可行的输入,它会管好自己的生命周期。
而你,可以做更重要的事。
很多人在做自动化的时候,喜欢把系统设计成「万事都要通知我」。每个步骤都发消息,每个状态都更新。结果是把自己淹没在信息洪流里,最后反而不知道该关注什么。
更好的方式是什么?是守门员式的设计。它在那里,知道该做什么,但只有真正需要你的时刻,才会敲你的门。
三分十三秒的意义
说回那个备份程序。
三分十三秒。这个数字本身没什么特别的。73 个新文件,加上远程同步,加上去重检查,一共三分十三秒。
但我注意到另外一个数据:跳过了七千六百多个文件。这些文件昨天备份过,内容没变,程序就不碰它们。它认识每个文件,知道哪些看过,哪些是新的。
这就像家里请了一个非常靠谱的管家。每天早上他悄无声息地来,把所有需要归档的事情整理好,把不需要动的维持原样。你甚至不知道他来过,只有偶尔翻到他的工作记录,才发现「哦,原来他每天都来」。
三分十三秒里,还跑了两轮去重。
第一轮删掉了 6 个重复的 checkpoint 文件。AI 对话的记录经常产生多重备份,同一个对话在不同时间被不同的程序存了四五份。程序把它们找出来,只留一份。
第二轮做了内容级别的去重,扫描了 80 个文件,确认没有对话内容上的重复。
两轮去重一共多花了不到一分钟。但正是这一分钟的投入,让七千多个文件里没有一寸空间被浪费。

视频管线里的缓存哲学
再看早上的视频程序。
它发现了几个测试视频都没有音频之后,就停了。但在这之前,它其实做了更多事。
我回想了一下这个视频管线当初设计的细节。视频处理这个流程,每一步都要花时间。字幕识别、AI 配图生成、分屏合成,每个环节都可能跑几分钟甚至十几分钟。所以管线里面有一个缓存策略:处理过的步骤会留缓存,下次同样的输入进来,直接从缓存拿结果。
这个设计带来一个问题:什么时候该用缓存,什么时候该重新跑?
如果用户只改了一个标点符号,全部重新渲染显然不划算。但如果改了关键内容,配图和字幕都需要更新,再用缓存就是错的。
解决这个问题的办法,是给每个中间产物打上输入源的哈希值。输入的 SRT 变了,哈希就变,缓存就自动失效。新的视频来的时候,系统先比较哈希,发现不一样,就知道「这个不是之前那个」,然后从头跑一遍。
这种机制的好处是,你不需要人为指定「是否重新处理」。系统自己判断。
坏处是判断逻辑本身也要维护,而且要确保所有依赖项都被哈希覆盖到了。
自动化的边界感
这两个程序让我想到了一个更大的话题。
自动化的边界在哪里?
我们很容易陷入一种状态:恨不得所有事情都自动化。发文章自动化,发视频自动化,备份自动化,连回消息都想自动化。
但机器自动化的东西越多,需要你判断的东西越清晰。
备份程序只管备份,不管分析。视频程序只管检查,不管制作。它们各自守好自己的那摊事,不越界,不抢活。
这其实是一种非常好的设计原则。
每个程序只做一件事,把这件事做到极致。程序之间通过文件系统和数据库交流,而不是互相调用 API。这样任何一个环节出了问题,都不会影响其他环节的运转。
所谓松耦合。
今天备份成功了,不影响视频管线。视频管线出了 bug,不影响公众号发布。每个系统各过各的日子,只在需要的时候碰头。

忙与不忙
最后说一件有意思的事。
今天一共就两个会话。一个凌晨三点,一个早上九点。加起来不到半个小时就全部搞完了。
如果放在几年前,我会觉得「今天好闲啊,什么都没做」。
现在我反而不这么想了。
忙不是目的。效率也不是。真正的目标是在最少的时间内跑通最重要的事,然后把时间留给那些机器做不了的事。
凌晨三点那个备份,它忙了三分十三秒。但它做的事情,如果让人手动来做,可能要花将近一个小时,还容易漏掉某个目录。
早上九点那个视频检查,它扫了二十多个文件,判断了三个视频都没有音频,然后安静退出了。如果是人来做,可能要打开每个视频看一看,再记录一下,再回来说一声。
自动化真正带来的不是「变忙」,而是「把需要忙的事情变少」。把你从那些重复的、可预期的、不需要判断的事情里解放出来,让你去处理那些没有标准答案的事。
就像今天。两个程序处理好自己的事后,我就可以坐在电脑前,安安静静地写一篇文章,把今天的流水账变成一点思考。
这件事,它们做不了。
关于安静
古人说,大音希声。
真正的力量,往往不是嘈杂的。那些天天嚷嚷自己有多忙的系统,反而是设计得不够好。好的系统不需要吆喝。它把事情做好了,就安静地待着,等下一个任务。
备份程序一声不吭地归档了七千个文件,视频程序不吵不闹地检查完所有输入。它们都没有刷存在感,但每一行日志都在说「今天我也在工作」。
我觉得,人和系统相处久了,会被系统影响。
以前我总想着怎么把事情搞大,怎么做更多的功能,怎么让每个环节都跑起来。现在我越来越倾向于另一种思路:把事情做少,做精,然后让它们自己去转。你只需要在关键的节点上,做出判断就行了。
就像今天的这两个程序。
一个是凌晨三点的三轮车夫,每天准时出车,风雨无阻,把每一份数据安全送达到目的地。
一个是早上九点的门卫,守在入口处,来人先看一下,能进的放行,不能进的拦下。
它们各司其职,互不打扰。而我现在坐在这里写的这篇文章,本身就是这个系统运转的结果——因为这些工作都自动处理完了,我才有时间去想别的事情。
这就是我认为的,自动化的最高境界。不是越来越忙,而是越来越安静。
以上,既然看到这里了,如果觉得不错,随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个星标⭐~
谢谢你看我的文章,我们,下次再见。
作者:剑飞,本文共3500字