要想找到代码所导致的问题,最好的方法就是用代码重现这个问题,而这些代码应该有以下的特性:
- 最小化——用尽可能少的代码重现相同的问题
- 完整——提供重现该问题的所有部分
- 可验证——对这些代码进行测试,确保它可以重现问题
最小化
代码体量越大,找到问题所在的难度就越高。你可以在下面两个方法中选择一个,来创建你的示例:
- 从头做起:创建一个新的程序,只添加哪些能让你看到问题的代码。如果你已经找到了是哪些代码出现了问题,而且项目本身的代码体量特别大,这个方法会帮你节省大量的时间。另外,如果你因为法律原因不能公开发布源代码,也可以使用这个方法。
- 逐个击破:如果项目的代码数量不算多,而且你也不知道哪里出了问题,你可以分步骤的删除一些代码,直到问题消失,以此来进行问题代码排查。
最小化与可读性
最小化和简陋不是一回事,不要为了简洁而牺牲可读性。你依然应该使用连贯的命名和正确的代码缩进,在必要的时候也要添加代码说明。大多数代码编辑器都有自动安排格式的快捷键,要使用它们。不要使用tab,它可能会让代码在你的编辑器里看上去很漂亮,但是在Stack Overflow上显示的时候可能会特别乱。
完整
确保包含所有与问题有关的代码:
- 一些人可能要对所有与问题相关的代码进行测试,用这种方式来寻找问题。
- 有的时候你的推测并不完全准确,问题可能并不在你怀疑的代码中,而是在其他一些相关的代码中。
如果该问题需要你提供一些服务器端代码以及基于XML的配置文件,那就把他们都放进去。如果一个与页面相关的问题需要你提供HTML、JavaScript和样式表,那就把它们都放进去。
可验证
为了帮你解决问题,一些人可能会需要验证这个问题的存在:
- 问题描述。“无法使用”这四个字不能算是问题描述。你应该告诉我你的期望行为、错误提示信息内容、以及那一行代码导致了这个问题。你应该在问题的title中提供简短的描述。
- 移除所有与问题无关的东西。如果你的问题与编译器错误无关,那就确保你提的问题里没有 compile-time错误。使用JSLint等程序对编译后的语言进行验证。对所有HTML或是XML进行验证。
- 确保你提供的示例能够重现该问题。有的时候你在写示例的时候会在不经意间修复了问题,这个时候其他人就无法重现该问题。因此在写好示例的时候,你应该对示例也在进行一次测试,看看问题是不是依然会出现。
有的时候,你可能还需要重启系统,或是将示例发到另外一台机器上进行测试,以此来验证问题能够被重现。

原文来自:SDK.cn
声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com