结论先行:如果旧文章引用的是“被改版文档里已经变动的具体信息”,就必须更新;如果引用的只是文档所在模块的通用入口或稳定概念,可以先不动。判断标准不是“文档改版了没有”,而是“旧文章里的那句话,换到新版文档后还找不找得到对应的位置和说法”。
把旧文章里的文档引用逐条拆开,通常落在三类上,处理方式完全不同。
换句话说,改版动作本身不构成更新理由,引用内容与新版文档之间出现“对不上”才是。这个判断可以先在小样本上做,但规模化时会遇到例外,下面单独说。
假设你手上有五十篇旧文章,先抽五篇检查,发现每篇平均只有一两处精确引用,于是判断“更新量不大,按文章逐篇改就行”。这个结论在五篇里成立,但放大到全部旧文章时,很可能失效,原因通常有三个。
所以,抽样只能用来判断“更新类型”,不能用来估算“更新总量”。不能直接照搬的边界就在这里:当引用集中度高、文章间存在引用链、或者改版范围本身不完整时,逐篇判断会失效,需要换成按“被引用对象”来组织。
假设某产品文档把“任务超时时间”这个参数的默认值从 30 分钟改成了 60 分钟,并且把该参数从“基础设置”移到了“高级设置”。旧文章里有三篇提到这个参数:一篇写了“默认 30 分钟”,一篇写“在基础设置里调整”,一篇只写“超时时间可配置,详见文档”。
按前面的分类:第一篇是精确引用,必须改;第二篇是结构引用,模块位置变了,必须改;第三篇是概念引用,只要“可配置”这个结论没变,可以不动。这个例子说明,同一份文档改版,落到不同旧文章上的更新要求并不一样,不能用“改版了”一刀切。
与其逐篇读旧文章,不如反过来做:先把新版文档里发生变动的具体信息点列出来,再去旧文章里搜这些信息点的关键词。这个动作的结果会直接决定下一步——如果搜出来的命中文章数量很少,就逐篇改;如果同一信息点命中大量文章,就先改这个信息点对应的所有文章,再处理零散引用。
执行时注意两点。第一,搜索时不要只搜参数名,还要搜旧值、旧位置描述和旧结论句,否则会漏掉那些没有写出参数名、只转述了结论的文章。第二,把“已确认新版文档未变动”的引用单独标记,不要顺手改掉,否则会把本来正确的文章改错。完成清单后,再按引用类型分配修改优先级:精确引用优先,结构引用其次,概念引用最后处理甚至不处理。
这样做的结果是,你能明确知道每一处修改对应的是哪个文档变动,而不是凭感觉判断“这篇看起来旧了”。下一步的复查也更容易,只要核对清单上的信息点是否都已覆盖即可。