老兵提到的问题,是不是有一个前提:各层校验的对象是一致的?既从逻辑上来说,数据在各层次间流动时,不发生改变。 $ R4 J8 `. b! H U' b: L 2 U; s7 E. _ O2 I j/ C如果是这样的话,倒确实不用每层都校验。而应把关注点放在数据传递安全上,也就是防篡改。 / \9 @) L w8 H4 H. a, L . }. N/ E! ~# q/ @7 F) y/ o) Z( M如果数据流动过程中会变动,那我同意空气精灵的观点。
这种每层都验证数据的做法我觉得没错6 I5 z4 L8 K' t; R8 [1 e. V
测试的做法我觉得似乎可以改进:通过修改下层的实际代码进行测试,这似乎过分了些 . _' q; K. s5 ~我不了解实际情况,觉得似乎可以干脆另写测试代码,模拟下层专门发送错误数据给上层,不然每次测试都修改生产代码,太麻烦太浪费了5 J: ]9 s- s3 Z0 x; u
% c5 b5 o* O- t0 H& D h2 R# Q' r _ b
我如果是上层写代码的,宁愿自己写这个测试也说不定,当然能安排给下层是最好了