Debugging 关于创建最小完整错误示例的优秀新手说明?

Debugging 关于创建最小完整错误示例的优秀新手说明?,debugging,Debugging,因此,我们这些已经回答问题和处理bug报告一段时间的人都非常熟悉“完整、最小示例”的概念。你从一大堆有奇怪错误的代码开始,然后你想问问别人。但是你不想把所有的乱七八糟的东西都寄给他们,所以你开始把一堆代码切成更小的碎片,直到你得到这个20行的水晶宝石,它仍然有你开始使用的bug (然后,至少有一半的时候,你会意识到虫子是什么,因为它就像月亮蛾一样盯着你的脸,你根本不需要问。但这是一个副作用。) 做这种代码缩减并不是每个人都具备的技能——它需要一点实践,除了许多新手还没有学会他们首先应该做这件事之

因此,我们这些已经回答问题和处理bug报告一段时间的人都非常熟悉“完整、最小示例”的概念。你从一大堆有奇怪错误的代码开始,然后你想问问别人。但是你不想把所有的乱七八糟的东西都寄给他们,所以你开始把一堆代码切成更小的碎片,直到你得到这个20行的水晶宝石,它仍然有你开始使用的bug

(然后,至少有一半的时候,你会意识到虫子是什么,因为它就像月亮蛾一样盯着你的脸,你根本不需要问。但这是一个副作用。)


做这种代码缩减并不是每个人都具备的技能——它需要一点实践,除了许多新手还没有学会他们首先应该做这件事之外。对于新手来说,有几套关于如何提出好问题的优秀说明(例如,ESR经典的“如何以聪明的方式提问”)。有没有好的说明来解释什么是最小完整的示例,以及如何创建它们以及为什么创建它们?

我将从我熟悉的说明开始;它们都来自TeX社区,因此编程有点偏颇。我希望其他人有更好的答案

TeX常见问题解答在上有一个条目

那一页指向一篇稍长的文章。同样,这是针对TeX文档的;想法是一样的,但是工具和细节有点不同

编辑(2013/01):我在StackOverflow评论中注意到的另一个问题是:。这并不完美,它建议将20kb(!)作为上限,但这是对列表的一个很好的补充


编辑(2013/02):Jon Skeet讲述了如何编写好的问题,其中包括一节关于示例代码的内容,似乎很有用。

所有内容都在名称中。完全最小示例是一个完整且最小的示例。完整意味着它包含所有相关信息,最小意味着它不包含任何不相关的信息。识别什么是一个不相关的东西的能力只有在实践中才能实现——试图提供这方面的指导似乎有点像试图提供骑自行车的指导。你可以给出技术解释和描述力学(你链接到的TeX FAQ做得很好),但最终真正学习的唯一方法是通过实践。

我不完全同意——即使学习的唯一方法是通过实践,几乎总是可以举例说明这个过程是什么样子以及如何进行的。尽管如此,你说的话可能有相当多的真实性。谢谢你的回答!