关键在于把“打断”当成练习状态的一部分来设计:每次停下前,用一分钟把当前进度写成可继续执行的痕迹。可恢复的练习状态不是记住全部内容,而是下次打开文件时能在几分钟内回答三个问题:我做到哪一步、下一步做什么、当时为什么这样做。若做不到这三点,即使笔记很长,也往往只是不可恢复的记录。
常见的情况是:被打断时匆忙记下大量内容,回来却发现不知道从哪一行继续。一种解释是记录太杂,把规则、猜测、待验证项混在一起,恢复时需要重新判断优先级。另一种解释是练习本身没有阶段终点,任何位置停下都像半成品,于是每次恢复都从零开始。两种解释会导向不同做法:前者要改记录结构,后者要改任务切分。
区分它们的证据是恢复耗时。如果记录结构清晰、但每次仍要花很久才能继续,问题更可能在任务切分;如果任务本来就有明确小终点、但恢复时仍要翻很久记录,问题更可能在记录结构。这个判断不需要精确计时,只需比较连续三次被打断后的重新进入时间。
练习网站采集器时,涉及选择器、翻页规则、字段映射、去重条件等多层设置,打断后最容易丢失的是“当前假设”。可以固定写三行:已完成:、下一步:、待验证:。第一行只写已经产生可见结果的动作,例如“列表页标题字段已能取到”;第二行写一个具体动作,例如“给第二页补翻页规则”;第三行写当前不确定的判断,例如“详情页链接是否都在同一层”。
这样做的实际影响是:下次打开时先执行“下一步”,而不是重读全部记录。若“下一步”能在十分钟内产生一个新结果,说明状态可恢复;若十分钟后仍在翻找上下文,说明任务切分或记录粒度需要调整。这个动作的结果会直接决定下一步是继续练习,还是先拆小当前任务。
多个角色对同一事实有不同理解时,例如一个人认为字段缺失是页面结构变化,另一个人认为是规则写错,不必先争结论。可以把分歧写成一个可核对的小项目:列出两种解释各自预测的现象,再设计一个最小检查。若怀疑结构变化,就检查同一字段在旧页面和新页面上的位置是否一致;若怀疑规则写错,就用同一页面分别测试修改前后的选择器,观察结果差异。
核对结果只说明当前证据支持哪种解释,不等于永久结论。采集练习中,页面结构、加载方式和访问条件都可能变化,因此更稳妥的做法是保留检查记录,而不是把一次结果当成通用规律。这样处理的价值在于:下次被打断后,恢复的不是情绪和争论,而是一份可以继续执行的检查清单。
假设练习目标是采集一个列表页的标题和链接,做到一半被打断。停下时写下:已完成“标题字段可取出”,下一步“补链接字段”,待验证“第二页是否使用相同结构”。回来后先做“补链接字段”,若十分钟内成功,就继续验证第二页;若十分钟内失败,且失败原因是找不到链接位置,就回到页面检查结构,而不是继续堆规则。这个例子中的数字只用于说明判断方式,不是固定标准。
若失败原因是记录里没有写清当时用的页面或规则版本,那么问题在记录结构,应先补状态再继续。若记录清楚但任务仍然过大,则应把“补链接字段”拆成“先取一个链接”和“再取全部链接”两步。两种处理对应不同原因,不能混用。
这个顺序的作用是避免在不可恢复的状态上继续投入。每次恢复后,把新的“下一步”和“待验证”补回去,练习状态才会随打断次数增加而更稳定,而不是越来越散。