掌握聚合最新动态了解行业最新趋势
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

  • 全球天气预报

    支持全球约2.4万个城市地区天气查询,如:天气实况、逐日天气预报、24小时历史天气等

    支持全球约2.4万个城市地区天气查询,如:天气实况、逐日天气预报、24小时历史天气等

  • 购物小票识别

    支持识别各类商场、超市及药店的购物小票,包括店名、单号、总金额、消费时间、明细商品名称、单价、数量、金额等信息,可用于商品售卖信息统计、购物中心用户积分兑换及企业内部报销等场景

    支持识别各类商场、超市及药店的购物小票,包括店名、单号、总金额、消费时间、明细商品名称、单价、数量、金额等信息,可用于商品售卖信息统计、购物中心用户积分兑换及企业内部报销等场景

  • 涉农贷款地址识别

    涉农贷款地址识别,支持对私和对公两种方式。输入地址的行政区划越完整,识别准确度越高。

    涉农贷款地址识别,支持对私和对公两种方式。输入地址的行政区划越完整,识别准确度越高。

  • 人脸四要素

    根据给定的手机号、姓名、身份证、人像图片核验是否一致

    根据给定的手机号、姓名、身份证、人像图片核验是否一致

  • 个人/企业涉诉查询

    通过企业关键词查询企业涉讼详情,如裁判文书、开庭公告、执行公告、失信公告、案件流程等等。

    通过企业关键词查询企业涉讼详情,如裁判文书、开庭公告、执行公告、失信公告、案件流程等等。

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