当网站自动推广工具的输入对象从单一页面变成批量URL、从纯文本变成带字段的表格时,旧输入规范往往在个别样本上仍然成立,一旦规模化就出现例外。改规范的正确顺序是:先判断变化属于“字段增加”还是“对象类型改变”,再决定是扩展旧规范还是重建规范,而不是直接放宽校验。
字段扩展指对象仍然是同一类东西,只是多了几个可选信息,例如原来只提交标题和链接,现在还要提交分组标签。对象类型改变指输入的根本单位变了,例如从“一个页面”变成“一次发布任务”,或从“一条内容”变成“一个内容批次”。
判断依据不是新样本数量多少,而是旧规范里“一行代表什么”是否还成立。如果一行不再代表同一个业务单位,就应该按类型改变处理。
当绝大多数输入仍是旧格式,只有少量新对象混入时,选择兼容式扩展更稳妥。具体动作是:把新增字段设为可选,给旧对象一个默认值,并在规范里写明默认值代表什么含义,而不是留空。
例如假设旧规范要求每行一个页面链接,新对象需要一个批次编号。可以规定:没有批次编号的行视为独立批次,批次编号相同的行合并处理。这样旧样本不需要改写,新对象也能被识别。做完这一步后,下一步是抽样验证合并结果是否符合预期,而不是立刻全量提交。
这种选择的边界是:默认值不能掩盖业务差异。如果“没有批次编号”和“独立批次”在实际处理中含义不同,就不能用同一个默认值,必须把两种对象分开成两个输入区域。
当新格式的对象占比明显上升,或旧规范的例外规则已经超过三条,继续扩展会带来维护成本。此时应重建输入规范:重新定义一行代表什么、哪些字段必填、用什么字段做唯一标识,并把旧格式单独放进一个迁移层处理。
实施动作可以分三步:
比较结果会影响下一步:如果差异集中在少数可选字段,可以只调整映射规则;如果差异出现在唯一标识或对象数量上,说明迁移层无法自动完成,需要人工确认后再提交。
个别样本能通过、规模化后出现重复或丢失,最常见的原因不是字段格式,而是唯一标识不唯一。例如用标题做标识时,两个页面标题相同就会被合并;用链接做标识时,带参数的同一页面会被当成两个对象。
这时不要急着增加校验规则,而是先确认三件事:
如果重复发生在输入行,改输入规范即可;如果发生在处理阶段,说明规范里的标识规则与工具实际使用的标识不一致,需要以工具实际使用的标识为准重新定义。这个判断只能通过对比输入和输出记录完成,不能靠猜测。
无论选择扩展还是重建,都应在规范里写清三件事:哪些输入会被接受、哪些会被拒绝、拒绝时给出什么提示。拒绝规则比接受规则更重要,因为它决定了规模化时例外会以什么形式暴露出来。
另外,输入对象格式变化往往伴随字段含义变化。同一个字段名在新旧对象中可能代表不同粒度,例如“数量”在页面对象中指内容条数,在批次对象中指任务数。遇到这种情况,应改名而不是复用旧字段名,避免旧样本被错误解释。规范更新后,先用小批量样本确认拒绝规则是否按预期触发,再决定是否扩大提交范围。