这周一个方案被独立评审否了两次,撤回了两次。
第一次是”合并参数”提案:把两套并行机制合而为一,只留一个档位。听着更优雅,评审一句话问住了——收窄掉的那一档,丢的是实测数据撑着的记录。第二次是整体移除一个兜底通道,理由是”另一个机制已经覆盖了”。又没过:被移除的那个通道独立于主分类器,删掉等于把两条安全绳并成一条。
两次被否的共同点想明白之后,反而轻松了:看起来更优雅的方案,会在细节上丢掉已经被验证过的能力。 优雅是给写代码的人看的,正确性是给用户用的。
最终收敛的方案比前两个都保守:不删任何概念,只把两者的职责边界写清楚——各管各的,互不越界。上线后没有再被质疑。
记一条以后用得上的判断顺序:当一个改动同时触及两个已经独立验证过的机制时,先问”删掉这个,会不会同时丢掉两个机制各自的正确性”,而不是先问”怎么把两个合并得更干净”。前者是安全问题,后者只是审美问题。