先给一个可执行的结论:把老师给的每条结论改写成"在什么条件下成立",然后主动构造一个让它失效的场景,观察结论的边界在哪里。这样做比反复背诵结论更有效,因为建站培训里大量结论都是条件性的——"这样写标题更好""这个结构对用户更友好",脱离条件就无法判断对错。反例练习的目标不是推翻老师,而是找出结论的适用区间。下面给出两种常见做法的取舍条件、一个会让做法失效的反例,以及可以立刻执行的动作。
第一种做法是就地改条件:保持老师给的结论不变,只替换其中一个前提,看结论是否还站得住。比如结论是"导航层级不超过三层便于用户查找",你可以把前提从"内容量小的企业站"换成"内容量大的行业站",再判断三层是否仍然成立。这种做法的成本低,一次练习只动一个变量,适合刚学完一个模块、结论还比较零散的时候。
第二种做法是反向设计场景:先设定一个极端场景,再回头检查老师给的结论在这个场景里会出什么问题。比如先假设"用户只用手机、网络很慢、只想找电话号码",再看老师讲的那套首页结构是否还能完成任务。这种做法更接近真实项目里的取舍,但需要你已经掌握足够多的基础概念,否则容易构造出一个不成立、也无法验证的场景。
选择的依据不是哪种更高级,而是你当前能不能判断反例是否成立。如果你还无法说清"这个反例为什么会让结论失效",就先做第一种;如果你已经能独立写出判断标准,再切换到第二种。
假设你学到一个结论:"页面加载慢时,先压缩图片。"你构造反例:一个页面几乎没有图片,加载仍然慢。这个反例看起来推翻了结论,实际上只是说明结论的前提不成立——结论本来针对的就是图片占大头的页面,而不是所有慢页面。如果你把这种反例当成"老师讲错了",练习方向就跑偏了。
真正有效的反例必须满足两个条件:前提仍然成立,但结论给出的动作不再是最优解。上例中有效的反例应该是:页面图片确实占大头,但图片已经被压到极限,继续压缩会明显损伤清晰度,此时更该考虑的是延迟加载或换格式。只有这种反例才能帮你找到结论的边界,而不是把结论误判为错误。
拿到一条结论后,不要直接问"对不对",先把它拆成三个部分:适用对象(对什么类型的站、什么阶段的页面)、判断依据(凭什么说这样做更好)、可观察的结果(做完之后能看到什么变化)。拆完之后你会发现,很多结论之所以让你觉得"只能背",是因为老师省略了适用对象和判断依据,只留下了动作。
拆解本身就是反例练习的准备工作。没有这一步,你构造的反例往往打不中结论的要害,只是在换一个话题。
具体动作:从最近一节课里挑一条你最不确定的结论,按上面的三个部分写下来,然后只改动"适用对象"这一项,写下改动后结论是否还成立,并注明你的判断理由。整个过程控制在二十分钟以内,写在一处固定位置,方便后面回看。
这个动作的结果会直接影响下一步:如果你能顺利写出理由,说明这条结论已经可以进入应用层,接下来该练的是把它用到真实页面上;如果你写不出理由,说明缺的不是反例,而是这条结论背后的判断依据,下一步应该回去补的是依据,而不是继续堆反例。反例练习的价值不在于数量,而在于它能不能把你从"记住动作"推到"知道什么时候不该用这个动作"。