当博客写作软件新增或更换可导入、可同步的对象格式时,不要直接沿用旧输入规范。先判断变化属于“同一对象换了载体”还是“对象本身改变了结构”:前者只需改字段映射,后者必须重写校验规则和例外处理。下面给出两种条件下的不同选择和可执行动作。
格式变化通常有两种来源。第一种是导出载体变了,例如原来粘贴纯文本,现在改为导入带标题层级的结构化文件,但字段含义没变。第二种是对象结构变了,例如原来一篇内容对应一个正文块,现在一篇内容被拆成摘要、正文、引用、脚注多个对象,每个对象有独立标识。两者对输入规范的影响完全不同。
判断依据可以看三点:字段名是否一一对应、必填项是否增加、对象之间是否出现父子或引用关系。如果只有第一点变化,按字段映射处理;如果后两点同时出现,按结构重写处理。把这两种情况混在一起改,最常见的后果是旧样本仍然通过,但规模化导入时出现大量孤立对象或空正文。
当新格式只是把同一批信息换了字段名或换了分隔方式,输入规范应保持最小改动。实施动作是:先列出旧规范中每个字段的来源,再在新格式中找到对应字段,建立一张映射清单;对找不到来源的字段,明确写“留空”还是“取默认值”,不要留给执行人员自行判断。
这一步的结果会直接影响下一步:如果映射清单里出现多个字段指向同一来源,说明新格式可能已经合并了对象,此时不应继续按字段映射处理,而要退回上一步重新判断是否属于结构变化。假设一个场景:旧规范要求输入标题、作者、正文三段,新格式只提供一个合并后的文档字段。此时若强行按旧规范拆分,拆分规则就成了新的隐式规范,必须写进文档并注明假设,否则不同人拆出的结果不一致。
当新格式引入对象层级、引用关系或可选嵌套时,只改映射不够。输入规范需要增加三类内容:对象标识规则、引用完整性规则、例外登记方式。
实施动作是先用手工构造的少量样本覆盖正常、缺父、缺子、循环引用四种情况,确认校验规则能区分它们,再扩大到真实数据。这个动作的结果决定了例外清单是否可信:如果少量样本里就出现规则无法归类的情况,说明规范还缺少分支,不应进入批量处理。
格式变化后最常见的问题是拿一两个成功样本当作规范已经可用。个别样本成立但规模化后出现例外,通常有三个原因:样本恰好避开了可选字段、样本之间的对象顺序恰好正确、样本没有触发引用检查。要区分这些原因,可以观察例外是否集中在同一字段或同一对象类型上。集中出现说明规则有系统性缺口;分散出现说明输入源本身不一致,需要在规范里增加来源标注。
这里要说明适用条件:上述判断适用于以结构化对象为输入单位的博客写作软件。如果软件只接受纯文本粘贴,对象层级由软件内部生成,那么输入规范的重点应放在分隔符和段落标记上,而不是对象标识。具体软件支持哪些格式、是否有导入入口、是否有校验提示,需要以该软件当前版本的说明为准,不能照搬其他工具的假设。
规范修改完成后,至少做一次回归检查:用旧规范下曾经通过的样本重新走一遍新流程,记录哪些样本失败、失败原因属于映射问题还是结构问题。这个动作的结果决定下一步是回退部分规则,还是补充例外说明。回归检查不承诺任何处理效果,只用于暴露规范与真实输入之间的差距。如果失败样本全部集中在同一类对象上,优先修那一类,而不是整体放宽校验。
最后要记住:格式变化时,输入规范改的不是措辞,而是判断分支。分支写清楚了,执行人员才能在遇到例外时做出与规范一致的决定。