-
Notifications
You must be signed in to change notification settings - Fork 10.1k
如何提问
"在和这些资深老外程序员交流的过程中,我还学会了如何提问。如果你想提交一个bug,那你应该说明这些内容:什么情况下会出现这个bug,为了解决这个bug,你做了什么尝试,你觉得引发这个bug的原因可能是什么。然后还要把所有的log,crash,dump之类的文件都给他。详情可以参看“如何提问”这篇文章。很多人提问的习惯不太好,比如有人说:内存溢出了,怎么办?上下文都没有,我怎么知道怎么办!" ——《池建强:我的人生元编程(图灵访谈)》
感谢大家的热情反馈,我也明白提问者的心情是焦急的,但如果你的问题无法复现,则永远不会得到解决。换位思考,如果你的同事没头没脑地问你“猪有多大?”想必你也一头雾水,爱莫能助——哪头猪?多大指的是体型还是年龄? 请问你平时是如何向你的同事,特别是第一次见面的同事问问题的? 请问你平时,又是如何向陌生人问路的?为什么现实世界中的礼仪,不能在同为公共场所的GitHub稍微遵守一下呢? 我认为,友好的提问方式,才能体现良好的个人修养与情商。
一个友好的issue至少必须包含:
- 版本号
- 触发代码
- 输入输出
触发代码指的是,你是如何调用的。尽量去掉无关的代码,使问题突出。
所谓的输入输出指的是,引发问题的数据和具体的输出。比如对分词来讲,输入就是一个句子。输出指的是在你的机器上得到什么结果,包括异常等。
如果问题涉及到用户词典,你可以通过com.hankcs.hanlp.dictionary.CustomDictionary#add(java.lang.String)
接口模拟。
最终的触发代码应当类似如下:
public void testIssue1234() throws Exception
{
CustomDictionary.add("用户词语");
System.out.println(StandardTokenizer.segment("触发问题的句子"));
}
缺少任意一项的issue将被视作不友好的issue,会导致如下情况:
- 被贴上无效标签
- 被推迟到下个周末处理
- 被直接关闭并忽略
目前issue模板硬性规定了这些必填字段,不按issue模板填写,保证不回复! 如果你提交了一个不友好的issue,请仔细阅读本文,或者《提问的智慧》,然后补充必需的信息,最后耐心排队等待处理。
谢谢合作!
HanLP: Han Language Processing - Natural Language Processing for the next decade