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

  • 双人婚姻登记状态核验

  • AI新闻简报

    最新新闻资讯简报,各类国内、国际、体育、娱乐、科技等资讯AI智能总结摘要及详细内容,适合各类AI Agent、穿戴设备进行资讯播报、阅读。

    最新新闻资讯简报,各类国内、国际、体育、娱乐、科技等资讯AI智能总结摘要及详细内容,适合各类AI Agent、穿戴设备进行资讯播报、阅读。

  • 运营商5G基站信息

    通过传递运营商2G/3G/4G/5G基站的MCC、MNC、TAC、CID信息查询所在位置信息。为用户提供位置服务,如实时导航、周边推荐等。

    通过传递运营商2G/3G/4G/5G基站的MCC、MNC、TAC、CID信息查询所在位置信息。为用户提供位置服务,如实时导航、周边推荐等。

  • 人脸实名认证2.0

    通过身份证号+姓名+人脸照片的一致性比对,系统与公安库中的身份证登记照比对,判断是否为同一人,核验用户信息真实性。

    通过身份证号+姓名+人脸照片的一致性比对,系统与公安库中的身份证登记照比对,判断是否为同一人,核验用户信息真实性。

  • 企业招投标信息

0512-88869195
客服微信二维码

微信扫码,咨询客服

数 据 驱 动 未 来
Data Drives The Future