神探狄仁杰是一个Debug高手
从前就断断续续地看过几集《神探狄仁杰》。这两天空闲时就重新看了一遍。
第一部由三个故事组成。分别是“使团被杀案”,“湖州案”和“滴血雄鹰”。情节连贯,扣人心弦。想起这些年DEBUG的事儿,觉得办案与DEBUG有太多相似之处了。
一个好的抓虫师必须有灵敏的感觉。就像我们常说的,要能嗅出坏代码的味道。当你面对一群代码,错综复杂,N个人写的,或是一个不善表达的作品。你的第一感觉可能就是“这里的水很深。”不过,不要紧。再狡猾的虫子也是有破绽的。对不合逻辑之处 ,就要仔细想一想,这是为什么。“使团”案中,从假千牛卫的幽州口音,就推出了可能的一种办案方向。
一个好的抓虫师不可能忽略每一个细节。但细节太多了,所以必须将细节之间的逻辑关系感觉出来。只有形成了这个逻辑关系,你才能找出不合理的地方。将虫子一举抓住。“滴血雄鹰”中,狄老就是注意了被害人的不合理之处,从而推出了被害人的一个意图,从而找出了其隐藏的身份证明。而凶手,正是忽略了这个不合理之处,从而没将证据消毁。
一个好的抓虫师会用推理重现虫子的思想。各种细节与常识联系起来,会形成一个事件的关系网。从一个出发点到一个中间节点,是一个推进的过程。推理就是要遍历各个节点,找出一个合理的过程。如何去找呢?狄公常说,当排除了所有其它可能性时,答案就在眼前了。
一个好的抓虫师会让虫子自己跳出来。给代码压力,创造出错的条件,让虫子无处可躲。代码不会说话。BUG藏得很好。于是,给它压力,让它暴露。当然,这时要设好捕虫器,别让跳出来的虫子飞了。
一个好的抓虫师不会一个人去战斗。一个人能力有限,要会多方面寻找帮助。多问问“元芳”怎么看。多找找有用的各种工具。