掌握聚合最新动态了解行业最新趋势
API接口,开发服务,免费咨询服务

如何做出最小化、完整、可验证的问题示例

 要想找到代码所导致的问题,最好的方法就是用代码重现这个问题,而这些代码应该有以下的特性:

  •  最小化——用尽可能少的代码重现相同的问题
  •  完整——提供重现该问题的所有部分
  •  可验证——对这些代码进行测试,确保它可以重现问题

最小化

代码体量越大,找到问题所在的难度就越高。你可以在下面两个方法中选择一个,来创建你的示例:

  1.  从头做起:创建一个新的程序,只添加哪些能让你看到问题的代码。如果你已经找到了是哪些代码出现了问题,而且项目本身的代码体量特别大,这个方法会帮你节省大量的时间。另外,如果你因为法律原因不能公开发布源代码,也可以使用这个方法。
  2.  逐个击破:如果项目的代码数量不算多,而且你也不知道哪里出了问题,你可以分步骤的删除一些代码,直到问题消失,以此来进行问题代码排查。

最小化与可读性

最小化和简陋不是一回事,不要为了简洁而牺牲可读性。你依然应该使用连贯的命名和正确的代码缩进,在必要的时候也要添加代码说明。大多数代码编辑器都有自动安排格式的快捷键,要使用它们。不要使用tab,它可能会让代码在你的编辑器里看上去很漂亮,但是在Stack Overflow上显示的时候可能会特别乱。

完整

确保包含所有与问题有关的代码:

  •  一些人可能要对所有与问题相关的代码进行测试,用这种方式来寻找问题。
  •  有的时候你的推测并不完全准确,问题可能并不在你怀疑的代码中,而是在其他一些相关的代码中。

如果该问题需要你提供一些服务器端代码以及基于XML的配置文件,那就把他们都放进去。如果一个与页面相关的问题需要你提供HTMLJavaScript和样式表,那就把它们都放进去。

可验证

为了帮你解决问题,一些人可能会需要验证这个问题的存在:

  •  问题描述。无法使用这四个字不能算是问题描述。你应该告诉我你的期望行为、错误提示信息内容、以及那一行代码导致了这个问题。你应该在问题的title中提供简短的描述。
  •  移除所有与问题无关的东西。如果你的问题与编译器错误无关,那就确保你提的问题里没有 compile-time错误。使用JSLint等程序对编译后的语言进行验证。对所有HTML或是XML进行验证。
  •  确保你提供的示例能够重现该问题。有的时候你在写示例的时候会在不经意间修复了问题,这个时候其他人就无法重现该问题。因此在写好示例的时候,你应该对示例也在进行一次测试,看看问题是不是依然会出现。

有的时候,你可能还需要重启系统,或是将示例发到另外一台机器上进行测试,以此来验证问题能够被重现。

qrcode_for_gh_9de197bcc61b_258.jpg

原文来自:SDK.cn

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

  • 航班订票查询

    通过出发地、目的地、出发日期等信息查询航班信息。

    通过出发地、目的地、出发日期等信息查询航班信息。

  • 火车订票查询

    通过站到站查询火车班次时刻表等信息,同时已集成至聚合MCP Server。火车票订票MCP不仅能赋予你的Agent火车时刻查询,还能支持在线订票能力。

    通过站到站查询火车班次时刻表等信息,同时已集成至聚合MCP Server。火车票订票MCP不仅能赋予你的Agent火车时刻查询,还能支持在线订票能力。

  • 车辆过户信息查询

    通过车辆vin码查询车辆的过户次数等相关信息

    通过车辆vin码查询车辆的过户次数等相关信息

  • 银行卡五元素校验

    验证银行卡、身份证、姓名、手机号是否一致并返回账户类型

    验证银行卡、身份证、姓名、手机号是否一致并返回账户类型

  • 高风险人群查询

    查询个人是否存在高风险行为

    查询个人是否存在高风险行为

0512-88869195
数 据 驱 动 未 来
Data Drives The Future