20240618 stackflow问答规范

如何创建最小、可重现的示例
在提出调试问题时,如果您 提供 文本形式 在问题中以 代码,以便潜在回答者可以轻松理解和用于重现问题
这被称为创建“最小、可重复的示例”(MRE)、“最小、完整和可验证的示例”(MCVE)、“最小的、可行示例”(MWE)或 “reprex” 。无论它如何传达给你,它都归结为确保你在问题中包含遵循以下准则的代码:
您的代码示例应该是…
- 最小:使用尽可能少的代码,但仍会产生相同的问题
- 完整:提供其他人在问题本身中重现您的问题所需的所有部分 in the question itself
- 可重现:测试您将要提供的代码,以确保它重现问题
本帮助文章的其余部分提供了有关编写最小、可重现示例的这些方面的指导。
有关如何调试程序以便创建最小示例的更多信息, Eric Lippert 写了一篇关于该主题的精彩博客文章: 如何调试小程序 。
极小
要处理的代码越多,人们发现您的问题的可能性就越小。通过以下两种方式之一简化示例:
- 从头开始。 创建一个新程序,仅添加查看问题所需的内容。对函数和变量使用简单的描述性名称 - 不要复制现有代码中使用的名称。
- 分而治之。 如果您不确定问题的根源是什么,请开始一次删除一点代码,直到问题消失 - 然后重新添加最后一部分。
…但仍然可读
在创建最小示例时,不要为了简洁而牺牲清晰度。使用一致的命名和缩进,并在需要时包含代码注释。使用代码编辑器的快捷方式设置代码格式。此外,使用 空格而不是制表符 ,因为制表符在 Stack Overflow 上通常格式不正确,尤其是在缩进时。
完成
确保重现问题所需的所有信息 都以文本 形式包含在问题本身中:
- 不要 使用代码图像 。从代码编辑器中复制实际文本,将其粘贴到问题中,然后 将其格式化为代码 。
- individual code blocks 对包含的每个文件或代码段使用单独的代码块。为每个块的用途提供描述。
- 如果问题需要一些服务器端代码以及一些基于 XML 的配置,请 包含两者的代码 。如果网页问题需要 HTML、某些样式和某些 JavaScript, 请包含所有三种样式的代码 。问题可能不在于您认为它所在的代码。
- 如果您使用的是 HTML、CSS 和/或 JavaScript,则可以使用 **堆栈代码段 **来包含 可运行 的代码段,而不仅仅是静态代码块。
什么是栈堆代码块真的很神经?
重现
为了帮助您解决问题,其他人需要验证它是否 存在:
- 描述问题。 “它不起作用”的描述性不足以帮助人们理解您的问题。相反,告诉其他读者预期的行为应该是什么。 告诉其他读者错误消息的确切措辞是什么,以及是哪一行代码生成的。 使用简短但描述性的问题摘要作为问题的标题。
- 消除与问题无关的任何问题。 如果您的问题不是 关于 编译器错误,请确保没有编译时错误。使用 JSLint 等程序来验证解释型语言。 验证 任何 HTML 或 XML。
- 仔细检查您的示例是否重现了该问题! 如果您在编写示例时无意中解决了问题,但没有再次测试,那么在请求其他人帮助之前,您会想知道这一点。
关闭系统并重新启动它,或将示例传输到新环境以确认它确实提供了问题的示例,这可能会有所帮助。
Comments
Comment plugin failed to load
Loading comment plugin