如何创建一个最小的可复现的实例

如何创建一个最小的可复现的实例

提问题时,如果你提供易于理解并且可以用于复现问题的代码,别人就可以更好地为你提供帮助。社区成员将其称为创建最小的、可重复的示例(reprex)、最小的、完整的和可验证的示例(mcve)或最小的、可操作的示例(mwe)。不论如何,确保你复现问题的代码遵循以下准则:
你的实例代码应该:

  1. 最小化:使用尽可能小的代码仍然会产生相同的问题
  2. 完整的:提供复现你的问题需要的所有部分
  3. 可复现:测试你提供的代码,以确保这些代码能够复现

这篇帮助文章的剩余部分就如何编写最小的、可复现的示例提供了指导。

最小化

代码越多,发现问题的可能性越小。用以下两种方法简化你的示例:

  1. 从头开始:创建一个新程序,仅添加查看问题所需的内容。对函数和变量使用简单的描述性名称-不要在现有代码中复制正在使用的名称。
  2. 分而治之:如果你不确定问题的根源是什么,请一次删除一点代码,直到问题消失为止–然后再添加最后一部分。

最小且可读

创建最小示例时,不要为了简洁牺牲代码的流畅性。使用一致的命名和缩进,并且添加必要的注释。使用代码编辑器的快捷键来格式化代码。使用空格而不是制表符(Tab

完整的

确保复现问题所需的全部信息都被提供:

  1. 如果问题需要一些服务器端代码以及一些基于XML的配置,请同时包含这两个代码。如果是网页问题需要HTML、JavaScript和样式表三者都提供代码。问题可能出在你认为它所在的代码中。
  2. 对您包括的每个文件或代码段使用单独的 代码块。针对每个块的目的提供描述。
  3. 请勿使用代码截图。从代码编辑器复制实际文本,将其粘贴到问题中,然后将其格式化为code。这可以帮助其他人更轻松地阅读和测试您的代码。

可复现

为了帮助你解决问题,其他人需要验证问题是否存在:

  1. 描述问题。“出错了;有问题;不起作用”等描述不足以让人理解你的问题。相反,告诉其他读者预期的行为是什么;确切的错误信息是什么;以及产生该错误消息的代码行。使用简短具有概括性的语句作为你的标题。
  2. 消除与该问题无关的所有问题。如果你的问题不是关于一个编译器错误,确保没有编译时错误。使用诸如JSLint之类的程序来验证解释性的语言。验证任何HTML或XML。
  3. 仔细检查你的示例是否重现了问题!如果你在编写示例时无意中解决了问题,但没有再次对其进行测试,则需要在寻求其他人帮助之前先知道这一点。

重启系统可能会有帮助,或将示例传输到新的环境中,以确认该示例确实有问题。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值