结论是:把文章知识转成实操题,输出必须能被第三方用“是/否”或“计数”判定,而不是写成心得体会。一个可行做法是让每道题产出一个文件、一段日志或一张对照表,并规定验收命令和失败样例。但样本只有一两个页面时成立,一旦扩到多目录、多模板或带参数网址,同一规则会因例外结构失效,这时要先补边界条件再谈规模化。
判定标准要落在可观察对象上:状态码、响应头字段、页面里是否存在某个元素、链接指向是否唯一、日志里某类请求是否出现。凡是需要读者主观判断“优化得好不好”的表述,都不算可判定输出。
假设你读到一篇讲分页处理的文章,不要写“理解分页优化”。改成三道输出题:
这三道题的输出都能被他人复核:表可以逐格比对,命令可以重跑,反例可以讨论。判定的不是“你懂没懂”,而是“你的规则在给定输入下给出什么结果”。
实操题最容易失败的地方,是输入没有冻结。同一道题今天用A站结构,明天换成B站结构,输出自然无法比较。做法是先写清输入样本的范围:几个网址、哪种模板、是否带参数、是否跨子域。
然后规定判定动作。例如:
动作确定后,下一步才有意义:如果存在性判定反复出现“大于1”,说明你的规则没有处理重复标签的合法场景,应先收窄规则,再扩大样本。
假设你只用三个静态文章页练习,规则是“页面里出现规范标签就说明处理正确”。这三个页面结构一致,输出干净,判定全部通过。
把同一规则套到带筛选参数的商品列表页,会出现反例:同一路径因参数不同返回内容近似但并非重复的页面,规范标签可能指向不带参数的版本,也可能被有意省略。此时“有标签即正确”的判定会把合理省略判成错误,把错误指向判成正确。失效原因不是规则写得不细,而是输入样本没有覆盖参数化与模板分支。
识别这类失效,可以看三个证据:同一规则在不同模板上的输出是否互相矛盾;异常是否集中在某一类网址而非随机分布;把该网址单独取出重跑,结果是否仍然偏离。若三条都指向同一类结构,说明需要为这类结构单列边界条件,而不是修改全局判定。
先选一道覆盖单一结构的题,把输入、判定动作、失败样例写全,跑一遍并记录哪些输出无法判定。把无法判定的部分拆成更小的判定项,直到每项都能用是/否或计数回答。然后只增加一个变量,例如多一个模板或多一种参数,重跑同一组判定,观察哪一项先失效。
失效项就是下一道题的起点:它告诉你当前规则缺哪条边界。按这个顺序推进,实操题会从“做完就算”变成“做完能指出规则在哪里不适用”,后者才是规模化前真正需要留下的东西。