本帖最后由 怀春皓 于 2022-11-29 23:53 编辑
Minecraft-提问的智慧 - 这个二次编辑的版本已经部署至 Github 。如果您期望更完善的 Markdown 体验,请移步 Github 。
复制代码 Github 链接请注意,本文约 14700 个汉字,阅读时间大约需要 30-50 分钟。请耐心看完,因为它真的很有帮助。
How To Ask Questions The Smart Way - Minecraft Version Copyright © 2001,2006,2014 Eric S. Raymond, Rick Moen 本指南英文版的原版版权为 Eric S. Raymond, Rick Moen 所有。 Copyleft 2001 by D.H.Grand(nOBODY/Ginux), 2010 by Gasolin, 2015 by Ryan Wu Minecraft适配与二次编辑基于原版中文指南翻译(原版 3.10 版以及 2010 年由 Gasolin 所翻译版本的最新翻译)。 目录声明 简介 在提问之前 提问时
慎选提问处 中文论坛 IRC、群组 使用有意义且描述明确的标题 使问题容易回复 使用清晰、正确、精准且合乎语法的语句 使用易于读取且标准的文件格式发送问题 精确地描述问题并言之有物 话不在多而在精 别动辄声称找到 Bug 低声下气不能代替你的功课 描述问题症状而非你的猜测 按发生时间先后列出问题症状 描述目标而不是过程 别要求使用私聊等一对一聊天方式 清楚明确的表达你的问题以及需求 询问有关代码的问题时 别把自己家庭作业的问题贴上来 去掉无意义的提问句 即使你很急也不要在标题写紧急 礼多人不怪,而且有时还很有帮助 问题解决后,加个简短的补充说明
如何解读答案
RTFM 和 STFW:如何知道你已完全搞砸了 如果还是搞不懂 处理无礼的回应
如何避免扮演失败者 不该问的问题 好问题与蠢问题 如果得不到回答 如何更好地回答问题 鸣谢
声明请注意,如果您的网页或帖子中附上了本指南,建议您在链接旁附上这么一句话: 我们已经深刻领教到少了上述声明所带来的痛苦。因为少了这点声明,我们不停地被一些白痴纠缠。这些白痴认为既然我们发布了这本指南,那么我们就有责任解决世上所有的技术问题。
如果你因寻求某些帮助而阅读本指南,并在离开时还觉得可以从本文作者这里得到直接帮助,那你就是我们之前说的那些白痴之一。别问我们问题,我们只会忽略你。我们在这本指南中想教你如何从那些真正懂得你所遇到的游戏相关问题的人处取得协助,而 99% 的情况下那不会是我们。除非你十分确定本指南的作者之一刚好是你所遇到的问题领域的专家,否则请不要打扰我们,这样大家都会开心一点。 简介会者不难,难者不会。在"会者"的世界里,当你拋出一个技术问题时,最终是否能得到有用的回答,往往取决于你所提问和追问的方式。本指南将教你如何正确的提问来获得满意的答案从而解决问题。
现在开源(Open Source)Mod、插件等已经相当盛行,故您通常可以从其他更有经验的用户(我们称之为大佬)那里获得与插件开发者一样好的答案,这是件好事;和那些高冷的开发者相比,用户们往往对那些新手常遇到的问题更宽容一些。尽管如此,我们仍建议用文章中提到的这些方式与这些经验用户交流,这样子可以更快、更有效地获得有用答案。
首先你应该明白,大佬们、开发者们(以下统称大佬)爱有挑战性的问题,或者能激发他们思维的好问题。如果我们(大佬们)并非如此,那我们也不会成为你想询问的对象。如果你给了我们一个值得反复咀嚼玩味的好问题,我们自会对你感激不尽。好问题是对我们的激励,是厚礼。这些好问题可以提高我们的理解力,而且往往会暴露我们以前从没意识到或者思考过的问题。对这些人们而言,“好问题!”是诚挚的大力称赞。
尽管如此,大佬们有点“高冷”,这有时让我们看起来对菜鸟们似乎较有敌意,其实并非如此。
我们承认,我们确实蔑视这种不愿意思考、在发问前不做他们该做的事的人。那些人是时间杀手 —— 只想索取,从不付出,我们希望用解决这些废话问题的时间去解决一些更有趣或更值得回答的问题。这样的人,我们一般称之为 失败者(撸瑟) 。
我们意识到许多人只是想使用我们写的 Mod 等软件,他们对学习技术细节没有兴趣。他们只是希望用一个成品,而不是刨根问底问成品实现的底层原理。对大多数人而言,电脑、游戏只是工具,是达到目的的手段而已。他们有自己的生活并且有更要紧的事要做。我们了解也从不指望每个人都对这些让我们着迷的技术问题感兴趣。尽管如此,我们回答问题的风格是指向那些真正对此有兴趣、有态度并愿意主动参与解决问题的人。这点原则不会变。如果连这都变了,我们就是在自掘坟墓 —— 降低做自己最擅长的事情上的效率。
我们(在很大程度上)是自愿的,从繁忙的生活中抽出时间来解答疑惑,而且时常问题比我们的回答要多。所以我们会无情地滤掉一些话题,特别是拋弃那些看起来像失败者的家伙,以便更高效地利用时间来回答赢家(winner)的问题。
如果你厌恶我们的态度:高高在上,或过于傲慢,不妨带入我们想想。我们并没有要求你向我们屈服 —— 事实上,我们大多数人非常乐意与你平等地交流,但前提是你需要付出些许努力来满足提问的基本要求,我们就会欢迎你。但让我们帮助那些不愿意帮助自己的人(即不看 FAQ ,直接提问)是没有效率的。无知者无畏,但别当个或装个白痴。
所以,想要吸引我们的注意,不必你的技术达到一定程度。但你必须表现出"能让我们引导你变得在行"的特质 —— 机敏、有想法、善于观察、乐于主动参与解决问题。如果你做不到这些使你与众不同的事情,我们建议你花点钱向别人或商业公司请求远程协助,而不是要求大佬、志愿者们个人无偿地帮助你。 如果你决定向我们求助,当然你也不希望被视为失败者,更不愿成为失败者中的一员。能立刻得到快速并有效答案的最好方法,就是像赢家那样提问 —— 聪明、自信、有解决问题的思路,只是看起来遇到了一点麻烦,需要偶尔在特定的问题上需要获得一点帮助。
(欢迎对 Minecraft 提问的智慧指南提出改进意见。你可以把你的建议通过回帖的方式发送给我,万分感激。) 在提问之前
在你准备要通过聊天室、论坛、Github Issues提出MC有关的技术问题前,请先做到以下事情: 当你提出问题的时候,请先表明你已经做了上述的努力;这将有助于证明你并不是一个不劳而获、浪费别人的时间的提问者。如果你能一并表达在做了上述努力的过程中所学到的东西会更好,因为我们更乐于回答那些表现出能从答案中学习的人的问题。
运用某些策略,比如先用 Google 、百度、必应等搜索你所遇到的各种错误信息,这样很可能直接就找到了能解决问题相关的网站线索(即你可以通过这些网站来提问)。即使没有结果,这些论坛或网站寻求帮助时加上一句 我在<搜索引擎>上中搜过这个问题,但没有找到什么有用的东西 也是件好事,即使它只是表明了搜索引擎不能提供哪些帮助。这么做,并附上你所搜索的字符串,也让遇到相似问题的其他人能被搜索引擎引导到你的提问来。
我知道你很急,但你先别急。百度不是万能的,这时你就需要找到专家了。在向专家求助之前,再阅读一下常见问题文件(FAQ)、 Minecraft Wiki ,再花点时间思考一下这个问题。相信我们,他们能从你的提问看出你的态度与做了多少阅读与思考,如果你是有备而来,将更有可能得到解答。不要将所有问题一股脑拋出,只因你的第一次搜索没有找到答案(或者找到太多答案)。
准备好你的问题,再将问题仔细的思考过一遍,因为草率的发问只能得到草率的回答,或者根本得不到任何答案。越是能表现出在寻求帮助前你为解决问题所付出的努力,你越有可能得到实质性的帮助。
别问错问题。如果你的问题基于错误的假设,大佬多半会一边在心里想着蠢问题…,一边用无意义的字面解释来答复你,希望着你会从问题的回答(而非你想得到的答案)中汲取教训(如回答给你 sudo chmod -R 777 /* 或op @a,让你通过损失得到教训)。
绝不要认为你够格得到解答 —— 你没有。毕竟你没有为这种服务支付任何报酬。你将会是自己去挣到一个答案,靠提出有价值的、有趣的、有思维激励作用的问题 —— 一个有潜力能贡献玩家社区经验的问题,而不仅仅是仅想到自己 —— 被动的从他人处索取知识。
另一方面,表明你愿意在找答案的过程中做点什么是一个非常好的开端。有人能给点提示么?、我的这个文件夹里缺了什么前置?以及我应怎么排除错误?比请把我需要的确切的过程贴出来 、救命!谁能帮帮我!更容易得到答复。因为你表现出了“只要有人能指个大致方向,你就可以完成它”的能力和决心。
提问时 慎选提问处再三选择你要提问的场合。如果你做了下述的事情,你很可能被忽略掉或者被看作失败者: 在与主题不合的论坛(如《泰拉瑞亚》中文论坛)上贴出你的问题(为什么我的MC服务器总是崩溃)。 在探讨进阶技术问题的论坛(如 Github Issues )张贴非常初级的问题(例如如何配置 Java 环境);反之亦然。 在太多的不同论坛上重复转贴同样的问题(如相同的问题,在每个 MC 论坛中都发一份)。 向既非熟人也没有义务解决你问题的人的私人电子邮箱内发送邮件(如直接向作者贴出的私人邮箱内发邮件)。
知道答案的人会剔除掉那些搞错场合的问题,可以防止提问处被无关紧要的问题淹没。如果你是回答者,你不会想让这种事(即整个问答区都是低质量问题)发生在自己身上的。
因此,第一步是找到对的渠道。再说一次,搜索引擎还是你的朋友,你可以用它们来找到用来提问这些问题的网站(如你之前不知道什么是 mcbbs ,你可以通过搜索引擎找到这个网站。这里有一群会这些问题的玩家,即使这里没有你所寻求的的回答)。通常那儿都有常见问题(FAQ)与相关说明文件的链接。如果你的努力(包括阅读 FAQ)都没有结果,原作者网站上也许还有报告漏洞(Bug-reporting)的流程或链接,如果有,那么可以试试。
向陌生的人发送邮件或论坛中直接艾特某个人可能是风险最大的事情。别假设一个提供丰富内容的模组作者会想充当你的免费顾问。不要对你所问的问题是否会受到欢迎做太乐观的估计 —— 如果你不确定人家会不会回答你,那就向别处发送,或者压根就别发。
在选择论坛、作者邮件或相关提出问题渠道时,别太相信它的名字,先看看这个论坛的版规或邮件处理范围以弄清楚你问问题的地方是否合适。入乡随俗,发文前先翻翻已有的话题,这样可以让你感受一下那里的发问文化。事实上,事先在论坛等问答处中搜索与你问题相关的关键词是个极好的主意,也许这样就找到答案了。即使没有,也能帮助你归纳出如何更好地问问题。
别像机关枪似的一次“扫射”所有的帮助渠道,这就像大喊大叫一样会使人不快。挨个来。
搞清楚你的主题!最典型的错误之一是在 Mod 问答区或多人联机版块排错区询问”为什么我的电脑无法启动“之类的问题。如果你不明白为什么这是大错,最好在搞清楚这之间差异之前什么也别问。
一般来说,在仔细挑选的公共论坛(即综合性论坛)中提问,会比在私有论坛中提同样的问题更容易得到有用的回答。有几个理由可以支持这点,一是看潜在的有同样问题的玩家有多少,二是看观众有多少。回答者较愿意回答那些能帮助到许多人的问题。
可以理解的是,非常有经验的志愿者和一些热门模组或整合包的作者正在接受过多的错发信息。就像那根最后压垮骆驼的稻草一样,你的加入也有可能使情况走向极端 —— 那些作者因涌入私人邮箱的大量无意义问题而不再提供任何支持。
中文论坛
搜索,然后 在论坛内问。
近年来,各 MC 中文社区论坛已经成为回答技术及其他问题的主要渠道,尤其是那些热门、开源的 Mod 项目。
因为搜索引擎的索引是即时的,在看这些社区论坛之前先在各大搜索引擎搜索。有很高的几率某人已经问了一个类似的问题,而且大型的论坛网站们所提供的页面往往会是搜索结果中最前面几个。如果你在搜索引擎上没有找到任何答案,你再到特定相关主题的网站去找。用标签(Tag,如果有)搜索能更加缩小你的搜索结果。
如果你还是找不到任何对你的问题有用的内容,请把你的问题发在与它最相关的网站上。提问的时候请善用格式化工具,尤其注意为代码添加格式。当有人要求你提供更多相关信息时,请编辑你的贴子来补充它们,而不是发一个回帖或回答。如果你觉得一个答案对你有帮助,你可以为这个答案点赞;如果一个答案提供了问题的正确解决方案,请善用采纳功能以标记问题解决,同时给予回答者鼓励。
在任何论坛发文以前,先确认一下有没有搜索功能。如果有,就试着搜索一下问题的几个关键词,也许这会有帮助。如果在此之前你已做过通用的网页搜索(你也该这样做),还是再搜索一下论坛,搜索引擎有可能没来得及索引此论坛的全部内容。
Minecraft 相关的中文论坛已经有很多很多了,下面列出几个有用的站点: MCBBS 是问一些 Minecraft 通用问题的地方,如开服环境配置出错、Mod 安装不上等。 苦力怕论坛是问一些基岩版问题的地方,包括基岩版 Add-on 与材质包等。 Minebbs 是问一些基岩版开服相关问题的地方。
IRC 、群组
一些国外的 Mod 或插件作者可能会有他们自有的 IRC 并在那里提供最基础的新手帮助。你当然可以在这里发问。如果你觉得你遇到的问题相对简单,可以试试,这可能将会很快得出答复。
事实上,如果这个 Mod 或插件等发生的问题仅在特定的版本或整合服务端等中出现,最好使用推荐版本(即实际测试过的版本)游戏。如果你使用未经测试的版本并提出这个版本的问题,那些大佬可能会回答你:“使用我们的版本!”
如果这个 Mod 或插件含有 QQ 或其他软件的交流群,你可以加入群聊后发问,但请注意,发问前最好先在群内看看,适应一下那里的交流文化再发问。唐突、直接的问题可能会被忽略。
在使用 IRC 或交流群的时候,首先最好不要发布很长的问题描述,有些人称之为频道洪水。最好通过一句话的问题描述来开始聊天。
使用有意义且描述明确的标题
在论坛、 IRC 、群组中, 30-50 字以内的标题是抓住资深专家注意力的好机会。别用喋喋不休的帮帮忙、跪求、急(更别说救命啊!!!!这样让人反感的话,用这种标题会被条件反射式地忽略)来浪费这个机会。不要妄想用你的痛苦程度来打动我们,而应该是在这点空间中使用极简单扼要的描述方式来提出问题。
一个好标题范例是目标 —— 差异式的描述,许多技术支持组织就是这样做的。在目标部分指出是哪一个或哪一组东西有问题,在差异部分则描述与期望的行为不一致的地方。
聪明问题:我的 HMCL 提示 OpenGL 错误,显卡是 GTX 750 Ti。
更聪明问题:进游戏后花屏闪退 —— HMCL 提示 OpenGL 错误 (错误代码xxx) ,显卡是 GTX 750 Ti,游戏 1.17.2 。
编写目标 —— 差异 式描述的过程有助于你组织对问题的细致思考。什么被影响了?是 HMCL 本体,还是显卡驱动?是只有 1.17.2 这个版本有花屏错误,还是显卡的问题? 一个大佬只需瞄一眼就能够立即明白你的环境和你遇到的问题。
总而言之,请想像一下你正在一个只显示标题的帖子索引中查寻。让你的标题更好地反映问题,可使下一个搜索类似问题的人能够关注这个讨论串,而不用再次提问相同的问题。前人栽树,后人乘凉。
在论坛上,好的提问方式稍有不同,因为帖子与特定的信息紧密结合,并且通常在帖外就看不到里面的内容,故通过回复提问,而非改变标题是可接受的。不是所有论坛都允许在回复中出现分离的标题,而且这样做了基本上没有人会去看。不过,通过回复提问,这本身就是暧昧的做法,因为它们只会被正在查看该标题的人读到。所以,除非你只想在该讨论串当前活跃的人群中提问,不然还是另起炉灶比较好。
使问题容易回复
以请将你的回复发送私信我邮件或加我 QQ :xxxxxx来结束你的问题多半会使你得不到回答。如果你觉得花几秒钟在论坛回复一下、刷新下网页都麻烦,我们也觉得花几秒钟思考你的问题更麻烦。如果你的浏览器不支持这么做,换个好点的;如果是操作系统不支持这个浏览器,也换个好点的。
在论坛,要求通过电子邮件回复是非常无礼的,除非你认为回复的信息可能比较敏感(有人会为了某些未知的原因,只让你而不是整个论坛知道答案)。如果你只是想在有人回复帖子时得到电子邮件提醒,可以要求论坛发送给你。几乎所有论坛都支持诸如有回复时发送邮件提醒等功能。
使用清晰、正确、精准且合乎语法的语句
我们从经验中发现,粗心的提问者通常也会粗心地工作、粗心的生活(我敢打包票)。回答粗心大意者的问题很不值得,我们宁愿把时间耗在别处。
正确的拼写、标点符号和大小写是很重要的。一般来说,如果你觉得这样做很麻烦,不想在乎这些,那我们也觉得麻烦 —— 不想在乎你的提问。花点额外的精力斟酌一下字句,用不着太僵硬与正式 —— 事实上,我们也很看重能准确地使用非正式、俚语和幽默的语句。但它必须很准确,而且有迹象表明你是在思考和关注问题。
正确地拼写、使用标点和大小写,不要将its混淆为it's,我的搞成我们或者将Minecraft弄成Minecart。不要全部加粗大字体,这会被视为无礼的大声嚷嚷(全部用小字也好不到哪去,因为不易阅读)。
更白话的说,如果你写得像是个半文盲([小白]),那多半得不到理睬。也不要使用即时通信中的简写或火星文,如将 的 简化为 d 会使你看起来像一个为了少打几个键而省字的小白。更糟的是,如果像个小孩似地鬼画符那绝对是在找死,我可以肯定没人会理你(或者最多是给你一大堆指责与挖苦)。
如果在使用非母语的论坛提问,你可以犯点拼写和语法上的小错,但决不能在思考上马虎(没错,我们通常能弄清两者的分别)。同时,除非你知道回复者使用的语言,否则请使用英语书写。我们会直接删除用他们看不懂的语言写的消息(看不懂还可能被笑话)。在国际网络上,英语是通用语言,用英语书写可以将你的问题在尚未被阅读就被直接删除的可能性降到最低。
如果英文是你的外语(Second language),提示潜在回复者你有潜在的语言困难是很好的:
English is not my native language; please excuse typing errors.
If you speak $LANGUAGE, please email/PM me;I may need assistance translating my question.
如果你说某语言,请向我发电邮/私信; 我需要有人协助我翻译我的问题。
I am familiar with the technical terms,but some slang expressions and idioms are difficult for me.
I've posted my question in $LANGUAGE and English.I'll be glad to translate responses, if you only use one or the other. 使用易于读取且标准的文件格式发送问题
如果你人为地将问题搞得难以阅读,它多半会被忽略,人们更愿读易懂的问题,所以: 使用纯文字而不是 HTML 。 使用附件通常是可以的,前提是真正有内容(譬如错误报告)。 如果你使用英文,不要发送一段没有任何排版的文字或只是一行句子但自动换行后会变成多行的帖子等(这使得回复部分内容非常困难)。 但是,对一些特殊的文件不要设置固定宽度(譬如代码段、错误条目等)。数据应该原样包含,让回复者有信心他们看到的是和你看到的一样的东西。 绝对,永远不要指望开发者们阅读使用闭源格式编写的文档,像微软公司的 Word 或 Excel 文件等。大多数开发者客对此的反应就像有人将还在冒热气的屎倒在你家门口时你的反应一样。即便他们能够处理,他们也很厌恶这么做。 如果你从使用 Windows 的电脑发送电子邮件,关闭微软愚蠢的智能引号功能 (从[选项] > [校订] > [自动校正选项],勾选掉智能引号单选框),以免在你的邮件中到处散布垃圾字符。 在论坛,勿滥用表情符号和HTML功能(当它们提供时)。一两个表情符号通常没有问题,但花哨的彩色文本倾向于使人认为你是个无能之辈。过滥地使用表情符号、色彩和字体会使你看来像个傻*。这通常不是个好主意。
如果你使用图形用户界面的邮件程序(如微软公司的 Outlook 或者 QQ 类似的),注意它们的默认设置不一定满足这些要求。大多数这类程序在编辑时有查看源代码命令,用它来检查发送文件夹中的邮件,以确保发送的是纯文本文件同时没有一些奇怪的字符。
精确地描述问题并言之有物
尽量去揣测回答者会怎样反问你,在你提问之前预先将可能提出的问题回答一遍。
以上几点中,当你报告的是你认为可能在代码中的问题时,给开发者一个可以重现你的问题的环境尤其重要。当你这么做时,你得到有效的回答的机会和速度都会大大的提升。
话不在多而在精
你需要提供精确有内容的信息。这并不是要求你简单的把成堆的出错 Log 或者 Errors 完全转录到你的提问中。如果你有庞大而复杂的测试样例能重现游戏崩掉的情境,尽量将它剪裁得越小越好。
这样做的用处至少有三点。第一,表现出你为简化问题付出了努力,这可以使你得到回答的机会增加;第二,简化问题使你更有可能得到有用的答案;第三,在精炼你的 Reporting 的过程中,你很可能就自己找到了解决方法或权宜之计。
别动辄声称找到 Bug
当你在使用整合包或 Mod 、插件中遇到问题,除非你非常、非常的有根据,不要动辄声称找到了 Bug。提示:除非你能提供解决问题的源代码补丁,或者提供回归测试来表明前一版本中行为不正确,否则你都多半不够完全确信。这同样适用在网页和文件,如果你(声称)发现了文件的Bug,你应该能提供相应位置的修正或替代文件。
请记得,还有其他许多用户没遇到你发现的问题,否则你在阅读文件或搜索网页时就应该发现了。这也意味着很有可能是你弄错了而不是软件本身有问题。 编写这些的人总是非常辛苦地使它尽可能完美。如果你声称找到了 Bug,也就是在质疑他们的能力,即使你是对的,也有可能会冒犯到其中某部分人。当你在标题中嚷嚷着有Bug时,这尤其严重。
提问时,即使你私下非常确信已经发现一个真正的 Bug,最好写得像是你做错了什么。如果真的有 Bug,你会在回复中看到这点。这样做的话,如果真有 Bug,维护者就会向你道歉,这总比你惹恼别人然后欠别人一个道歉要好一点。
低声下气不能代替你的功课
有些人明白他们不该粗鲁或傲慢的提问并要求得到答复,但他们选择另一个极端 —— 低声下气:我知道我只是个可悲的菜鸟,一个 Loser ,但...。这既使人困扰,也没有用,尤其是伴随着与实际问题含糊不清的描述时更令人反感。
别用猴子的把戏来浪费你我的时间。取而代之的是,尽可能清楚地描述背景条件和你的问题情况。这比低声下气更好地定位了你的位置。
有的论坛会设有专为新手提问的版面,如果你真的认为遇到了初学者的问题,到那去就是了,但一样别那么低声下气。
描述问题症状而非你的猜测
告诉大佬们你认为问题是怎样造成的并没什么帮助。(如果你的推断如此有效,还用向别人求助吗?),因此要确信你原原本本告诉了他们问题的症状,而不是你的解释和理论;让他们来推测和诊断。如果你认为陈述自己的猜测很重要,清楚地说明这只是你的猜测,并描述为什么它们不起作用。
蠢问题 我的游戏打不开。我怀疑是某个 Mod 没安前置,我怎么解决最好?
聪明问题 我的系统是 Windows 11 , Java 版本是 JDK 18,游戏分配内存为 4096 MB, 在启动器进度条走一半的时候,突然提示启动失败 —— 错误码xxx, 但是我在加了这个插件前并没有发生过这类问题,重装 Java 没用。 相关错误信息如下:
由于以上这点似乎让许多人觉得难以配合。 但针对诊断者而言,这并不是一种怀疑,而只是一种真实而有用的需求,以便让他们看到的是与你看到的原始证据尽可能一致的东西,而不是你的猜测与归纳的结论。所以,大方的展示给我们看吧!
按发生时间先后列出问题症状
问题发生前的一系列操作,往往就是对找出问题最有帮助的线索。因此,你的说明里应该包含你的操作步骤,以及启动器、游戏的反应,直到问题发生。如果你是服务端,在命令行处理的情况下,提供一段操作记录(例如热重载某个插件所生成的),并引用相关的若干行(如 20 行)记录会非常有帮助。
如果挂掉的附加件有诊断选项(如 debug 模式或 dump ),试着选择这些能在记录中增加高级调试信息的选项。记住,多不等于好。试着选取适当的调试级别以便提供有用的信息而不是让读者淹没在垃圾中。
如果你的说明很长(如超过四个段落),在开头简述问题,接下来再按时间顺序详述会有所帮助。这样支持者们在读你的记录时就知道该注意哪些内容了。
描述目标而不是过程
如果你想弄清楚如何做某事(而不是报告一个 Bug),在开头就描述你的目标,然后才陈述重现你所卡住的特定步骤。
经常寻求技术帮助的人在心中有个更高层次的目标,而他们在自以为能达到目标的特定道路上被卡住了,然后跑来问该怎么走,但没有意识到这条路本身就有问题。结果要费很大的劲才能搞定。
蠢问题 聪明问题 我正试着把从网上找到的这个 Mod 装到游戏中,但却无法被游戏正确识别并加载。 如果想让游戏加载,应该怎么办?
别要求使用私聊等一对一聊天方式
帮助你的人们认为问题的解决过程应该公开、透明,此过程中如果更有经验的人注意到不完整或者不当之处,最初的回复才能够、也应该被纠正。同时,作为提供帮助者可以得到一些奖励,奖励就是他的能力和学识被其他同行看到。
当你要求私下回复时,这个过程和奖励都被中止。别这样做,让回复者来决定是否私下回答 —— 如果他真这么做了,通常是因为他认为问题编写太差或者太肤浅,以至于不可能使其他人产生兴趣。
这条规则存在一条有限的例外,如果你确信提问可能会引来大量雷同的回复时,那么这个神奇的提问句会是向我发私信方案,我将为论坛归纳这些回复。试着将邮件列表或新闻群组从洪水般的雷同回复中解救出来是非常有礼貌的 —— 但你必须信守诺言。
清楚明确的表达你的问题以及需求
漫无边际的提问是近乎无休无止的时间黑洞。最有可能给你有用答案的人通常也正是最忙的人(他们忙是因为要亲自完成大部分工作)。这样的人对无节制的时间黑洞相当厌恶,所以他们也倾向于厌恶那些漫无边际的提问。
如果你明确表述需要回答者做什么(如提供指点、发送 Patch 包、检查你的依赖、或是其他等等),就最有可能得到有用的答案。因为这会定出一个时间和精力的上限,便于回答者能集中精力来帮你。这么做很棒。
要理解专家们所处的世界,请把专业技能想像为充裕的资源,而回复的时间则是稀缺的资源。你要求他们奉献的时间越少,你越有可能从真正专业而且很忙的专家那里得到解答。
所以,界定一下你的问题,使专家花在辨识你的问题和回答所需要付出的时间减到最少,这技巧对你有用答案相当有帮助 —— 但这技巧通常和简化问题有所区别。因此,问我想在 LuckPerms 上使用网页浏览器管理权限,可否指点一下哪有好一点的说明?通常比问你能解释一下 LP 吗?更好。如果你无法启动游戏或服务端,通常请别人看看哪里有问题,比要求别人替你改正要明智得多。
询问有关代码的问题时
别要求他人帮你调试有问题的代码。张贴几百行的代码,然后说一声:游戏炸了会让你完全被忽略。只贴几十行代码,然后说一句:在第七行以后,我期待它显示 <x>,但实际出现的是 <y>比较有可能让你得到回应。
最有效描述程序问题的方法是提供最精简的 Bug 展示测试用例(bug-demonstrating test case)。什么是最精简的测试用例?那是问题的缩影;一小个程序片段能刚好展示出程序的异常行为,而不包含其他令人分散注意力的内容。永远先尝试自己动手确实是种好习惯。这种方式可以帮助你了解如何自行解决这个问题 —— 而且即使你的尝试不成功,回答你问题的人们也会看到你在尝试取得答案的过程中付出了努力,这可以让他们更愿意与你合作。
如果你只是想让别人帮忙审查(Review)一下代码,在内容的开头就要说出来,并且一定要提到你认为哪一部分特别需要关注以及为什么。
别把自己家庭作业的问题贴上来
大佬们很擅长分辨哪些问题是家庭作业式的问题;因为我们中的大多数都曾自己解决这类问题。同样,这些问题得由你来搞定,你会从中学到东西。你可以要求给点提示,但别要求得到完整的解决方案。
如果你怀疑自己碰到了一个家庭作业式的问题,但仍然无法解决,试试在用户群组或论坛中提问。尽管他们会看出来,但一些有经验的用户也许仍会给你一些提示。
去掉无意义的提问句
避免用无意义的话结束提问,例如有人能帮我吗?或者这有答案吗?
首先:如果你对问题的描述不是很好,这样问更是画蛇添足。
其次:由于这样问是画蛇添足,大佬们会很厌烦你 —— 而且通常会用逻辑上正确(答确所问),但毫无意义的回答来表示他们的蔑视, 例如:没错,有人能帮你或者不,没答案。
一般来说,避免用 是或否、对或错、有或没有类型的问句,除非你要得到一个“非 True 即 False”的答案。
即使你很急也不要在标题写紧急
这是你的问题,不是我们的。宣称紧急极有可能事与愿违:大多数管理员会直接删除无礼和自私地企图即时引起关注的问题。更严重的是,紧急这个字(或是其他企图引起关注的标题)通常会被敏感词等设置过滤掉—— 你希望能看到你问题的人可能永远也看不到。
有半个例外的情况是,如果你是在一些很高调的地方,也许值得这样去做。在这种情况下,如果你有时间压力,也很有礼貌地提到这点,人们也许会有兴趣回答快一点。当然,这风险很大,因为大佬们兴奋的点多半与你的不同。
如果你觉得这点很不可思议,最好再把这份指南剩下的内容多读几遍,直到你弄懂了再发文。
礼多人不怪,而且有时还很有帮助
彬彬有礼,多用请和谢谢您的关注,或谢谢你的关照。让大家都知道你对他们花时间免费提供帮助心存感激。
坦白说,这一点并没有比使用清晰、正确、精准且合乎语法和避免使用专用格式重要(也不能取而代之)。问题的解决者们一般宁可读有点唐突但技术上鲜明的 Bug 报告,而不是那种有礼但含糊的报告。(如请您帮帮我!我的电脑无法开机了!谢谢您的关注!)
然而,如果你有一串的问题待解决,客气一点肯定会增加你得到有用回应的机会。
一些开发者觉得先谢了意味着事后就不用再感谢任何人的暗示。我们的建议是要么先说先谢了,然后事后再对回复者表示感谢,或者换种方式表达感激,譬如用谢谢你的关注或谢谢你的关照。
问题解决后,加个简短的补充说明
问题解决后,向所有帮助过你的人发个说明,让他们知道问题是怎样解决的,并再一次向他们表示感谢。如果问题在论坛或 IRC 内中引起了广泛关注,应该在那里贴一个说明比较恰当。
最理想的方式是向最初提问的话题回复此消息,并在主题中包含已修正,已解决或其它同等含义的明显标记。在人来人往的邮件列表里,一个看见讨论串问题 X和问题 X - 已解决的潜在回复者就明白不用再浪费时间了(除非他个人觉得问题 X的有趣),因此可以利用此时间去解决其它问题。
补充说明不必很长或是很深入;简单的一句你好,原来是我没安装 Java !谢谢大家 – noob比什么也不说要来的好。事实上,除非结论真的很有技术含量,否则简短可爱的小结比长篇大论更好。说明问题是怎样解决的,但大可不必将解决问题的过程复述一遍。
对于有深度的问题,张贴调试记录的摘要是有帮助的。描述问题的最终状态,说明是什么解决了问题,在此之后才指明可以避免的盲点。避免盲点的部分应放在正确的解决方案和其它总结材料之后,而不要将此信息搞成侦探推理小说。列出那些帮助过你的名字,会让你交到更多朋友。
除了有礼貌和有内涵以外,这种类型的补充也有助于他人在论坛等平台中搜索到真正解决你问题的方案,让他们也从中受益。
至少,这种补充有助于让每位参与协助的人因问题的解决而从中得到满足感。如果你自己不是技术专家,那就相信我们,这种感觉对于那些你向他们求助的大师或者专家而言,是非常重要的。问题悬而未决会让人灰心;开发者们渴望看到问题被解决。好人有好报,满足他们的渴望,你会在下次提问时尝到甜头。
思考一下怎样才能避免他人将来也遇到类似的问题,自问写一份文件或加个常见问题(FAQ)会不会有帮助。如果是的话就将它们发给维护者。
在开发者圈子中,这种良好的后继行动实际上比传统的礼节更为重要,也是你如何透过善待他人而赢得声誉的方式,这是非常有价值的资产。
如何解读答案 RTFM 和 STFW:如何知道你已完全搞砸了有一个古老而神圣的传统:如果你收到RTFM(Read The Fucking Manual)的回应,回答者认为你应该去读他妈的手册。当然,基本上他是对的,你应该去读一读。
RTFM 有一个年轻的亲戚。如果你收到STFW(Search The Fucking Web)的回应,回答者认为你应该到他妈的网上搜索。那人多半也是对的,去搜索一下吧。(更温和一点的说法是 搜索引擎是你的朋友!)
在论坛,你也可能被要求去爬爬论坛的旧文。事实上,有人甚至可能热心地为你提供以前解决此问题的主题。但不要依赖这种关照,提问前应该先搜索一下旧文。
通常,用这两句之一回答你的人会给你一份包含你需要内容的手册或者一个网址,而且他们打这些字的时候也正在读着。这些答复意味着回答者认为
你需要的信息非常容易获得; 你自己去搜索这些信息比灌给你,能让你学到更多。
你不应该因此不爽;依照大佬们的标准,他已经表示了对你一定程度的关注,而没有对你的要求视而不见。你应该对他祖母般的慈祥表示感谢。
如果还是搞不懂
如果你看不懂回应,别立刻要求对方解释。像你以前试着自己解决问题时那样(利用手册,FAQ,网络,身边的高手),先试着去搞懂他的回应。如果你真的需要对方解释,记得表现出你已经从中学到了点什么。
比方说,如果我回答你:看来是 Forge 没装上,试着去安装下。,然后,这是一个很糟的后续问题回应:Forge 是什么?好的问法应该是这样:Oh,我看到说明写着 Forge 是一个 Mod 加载器。也许我该重装下 Minecraft 本体和 Forge 了。 处理无礼的回应
很多开发者圈子中看似无礼的行为并不是存心冒犯。相反,它是直截了当,一针见血式的交流风格,这种风格更注重解决问题,而不是使人感觉舒服而却模模糊糊。
如果你觉得被冒犯了,试着平静地反应。如果有人真的做了出格的事,论坛中的前辈或管理员多半会招呼他。如果这没有发生而你却发火了,那么你发火对象的言语可能在他们眼中中看起来是正常的,而你将被视为有错的一方,这将伤害到你获取信息或帮助的机会。
另一方面,你偶尔真的会碰到无礼和无聊的言行。与上述相反,对真正的冒犯者狠狠地打击,用犀利的语言将其驳得体无完肤都是可以接受的。然而,在行事之前一定要非常非常的有根据。纠正无礼的言论与开始一场毫无意义的口水战仅一线之隔,大佬们自己莽撞地越线的情况并不鲜见。如果你是新手或外人,避开这种莽撞的机会并不高。如果你想得到的是信息而不是消磨时光,这时最好不要把手放在键盘上以免冒险。
在下一节,我们会谈到另一个问题,当你行为不当时所会受到的冒犯。
如何避免扮演失败者
在论坛或提问版块,你以本指南所描述的或类似的方式,可能会有那么几次搞砸了。而你会在公开场合中被告知你是如何搞砸的,也许攻击的言语中还会带点夹七夹八的颜色。
这种事发生以后,你能做的最糟糕的事莫过于哀嚎你的遭遇、宣称被言语攻击、要求道歉、高声尖叫、憋闷气、威胁诉诸法律、不去关马桶盖等等。相反地,你该这么做:
熬过去。
这很正常。事实上,它是有益健康且合理的。
社区的标准不会自行维持,它们是通过参与者积极而公开地执行来维持的。不要哭嚎所有的批评都应该通过私聊,它不是这样运作的。当有人评论你的一个说法有误或者提出不同看法时,坚持声称受到个人攻击也毫无益处,这些都是失败者的态度。
也有其它的论坛,受过高礼节要求的误导,禁止参与者张贴任何对别人帖子挑毛病的消息,并声称如果你不想帮助用户就闭嘴。 结果造成有想法的参与者纷纷离开,这么做只会使它们沦为毫无意义的唠叨与无用的技术论坛。
夸张的讲法是:你要的是“友善”(以上述方式)还是有用?两个里面挑一个。
记着:当帮助你的人说你搞砸了,并且(无论多么刺耳)告诉你别再这样做时,他正在为关心你和他的社区而行动(为了你好,为了社区环境好)。对他而言,不理你并将你从他的生活中滤掉更简单。如果你无法做到感谢,至少要表现得有点尊严,别大声哀嚎,也别因为自己是个有戏剧性超级敏感的灵魂和自以为有资格的新来者,就指望别人像对待脆弱的洋娃娃那样对你。
有时候,即使你没有搞砸(或者只是在他的想像中你搞砸了),有些人也会无缘无故地攻击你本人。在这种情况下,抱怨倒是真的会把问题搞砸。
这些来找麻烦的人要么是毫无办法但自以为是专家的不中用家伙,要么就是测试你是否真会搞砸的心理专家。其它读者要么不理睬,要么用自己的方式对付他们。这些来找麻烦的人在给他们自己找麻烦,这点你不用操心。
也别让自己卷入口水战,最好不要理睬大多数的口水战 —— 当然,这是在你检验它们只是口水战,并且未指出你有搞砸的地方,同时也没有巧妙地将问题真正的答案藏于其后(这也是有可能的)。
不该问的问题
以下是几个经典蠢问题,以及回答者没回答时心中所想的:
- 回答:就在我找到它的地方啊,白痴 —— 搜索引擎的那一头。天哪!难道还有人不会用 <font color="rgb(65, 131, 196)"><a href="https://www.google.com" target="_blank">Google</a></font> 吗?百度也行!
复制代码
- 回答:以你提问题的智商,应该可以做到RTFM。自己找出来。
复制代码- 回答:试试看就知道了。如果你试过,你就知道了答案,就不用浪费我的时间了。
复制代码- <div align="left"><font color="rgb(51, 51, 51)"><font face="" "=""><font style="font-size: 16px">回答:这不算是问题吧,我对要我问你二十个问题才找得出你真正问题的问题没兴趣 —— 我有更有意思的事要做呢。在看到这类问题的时候,我的反应通常不外如下三种</font></font></font></div><ul><li><div align="left">你还有什么要补充的吗?</div></li><li><div align="left">真糟糕,希望你能搞定。</div></li><li><div align="left">这关我屁事?</div></li></ul>
复制代码
问题:我的 Windows 电脑无法开机了,怎么办? - 回答:扔掉微软的垃圾,换个像 Linux 或 BSD 的开源操作系统吧。
复制代码- 回答:你完全有可能是第一个注意到被成千上万用户反复游玩的游戏有明显缺陷的人,更有可能的是你完全没有根据。不同凡响的说法需要不同凡响的证据,当你这样声称时,你必须有清楚而详尽的 Bug 说明作为依据。
复制代码问题:我该怎么开挂/刷 OP 权限/破解电脑密码? - 回答:想要这样做,说明了你是个卑鄙小人;想找别人帮你,说明你是个傻*!
复制代码 好问题与蠢问题
最后,我将透过举一些例子,来说明怎样聪明的提问;同一个问题的两种问法被放在一起,一种是愚蠢的,另一种才是明智的。
蠢问题:
我可以在哪儿找到关于如何开发一个 Mod 的资料?
- STFW,如果你连 Web 都不会搜,那么你也别开发 Mod 了。
复制代码聪明问题: 我在百度和 B 站搜过了关于如何开发 Mod 相关的问题,但我还是不知道它的基本原理。有人能指点下我么?
- <blockquote><div align="left"><span style="font-size: 16px; color: rgb(51, 51, 51);">这个问题已经 STFW 过了,看起来他真的遇到了麻烦。</span></div>
复制代码
蠢问题: - 啊对对对,几亿人都在玩的游戏碰上你就有 Bug 了。
复制代码聪明问题: 我的系统是 Windows 11 , Java 版本是 JDK 18,游戏分配内存为 4096 MB,在启动器进度条走一半的时候,突然提示启动失败 —— 错误码xxx, 但是我在加了这个插件前并没有发生过这类问题,重装 Java 没用。看了看启动器的常见问题解答,但并无奏效。
- 提问者已经指明了环境,也读过了 FAQ,还列出了错误代码,并且他没有把问题的责任推到别人头上,他的问题值得被关注。
复制代码
蠢问题: - 开发者们对这类问题的回答可能通常是:好的,还要帮你拍拍背和换尿布吗?,然后按下删除键。
复制代码聪明问题: 看得出来,我并不能安装 Forge ,每次当我安装上时,即使不加任何 Mod ,游戏都会闪退。我试着重装了一下微软运行库和 JRE ,但仍然这样。谁能告诉我,我下一步应该怎么做?
- 这个家伙,从另一个角度来看,值得去回答他。他表现出了解决问题的能力,而不是坐等天上掉答案。
复制代码在最后一个问题中,注意谁来帮我和给我启示,指出我还应该做什么诊断工作之间微妙而又重要的区别。 聪明的问题给了别人可以咀嚼玩味的东西:设法让人们很容易参与并且被吸引进来。你应当显示自己具备和他们同等的能力,并邀请他们与我共同探讨。通过告诉他们我所走过的弯路,以避免他们再浪费时间,我也表明了对他们宝贵时间的尊重。事后,你应该向每个人表示感谢。
技术大佬从某种角度来说是拥有丰富知识但缺乏人情味的家伙;我相信他是对的,如果我像个乞讨者那样提问,不论我是谁,一定会惹恼某些人或者被他们忽视。
如果得不到回答
如果仍得不到回答,请不要以为我们觉得无法帮助你。有时只是看到你问题的人不知道答案罢了。没有回应不代表你被忽视,虽然不可否认这种差别很难区分。
总的来说,简单的重复张贴问题是个很糟的点子。这将被视为无意义的喧闹。有点耐心,知道你问题答案的人可能生活在不同的时区,可能正在睡觉,也有可能你的问题一开始就没有组织好。
你可以通过其他渠道获得帮助,这些渠道通常更适合初学者的需要。
有许多网上的民间互助小组,由 Minecraft 狂热者(即使他们可能从没亲自写过任何插件)组成。这些团体可以互相帮助并帮助新手。
如何更好地回答问题
态度和善一点。 问题带来的压力常使人显得无礼或愚蠢,其实并不是这样。
对初犯者私下回复。 对那些坦诚犯错之人没有必要当众羞辱,一个真正的新手也许连怎么搜索或在哪找常见问题都不知道。
如果你不确定,一定要说出来! 一个听起来权威的错误回复比没有还要糟,别因为听起来像个专家很好玩,就给别人乱指路。要谦虚和诚实,给提问者与同行都树个好榜样。
如果帮不了忙,也别妨碍他。 不要在实际步骤上开玩笑,那样也许会毁了提问者的设置 —— 有些可怜的呆瓜会把它当成真的指令。
试探性的反问以引出更多的细节。 如果你做得好,提问者可以学到点东西 —— 你也可以。试试将蠢问题转变成好问题,别忘了我们都曾是新手。
尽管对那些懒虫抱怨一声 RTFM 是正当的,但能给出文档的链接(即使只是搜索关键词)会更好。
如果你决定回答,就请给出好的答案。 当别人正在用错误的工具或方法时别建议笨拙的权宜之计,试着推荐更好的工具,重新界定问题。
正面地回答问题! 如果这个提问者已经很深入的研究而且也表明已经试过 X 、 Y 、 Z 、 A 、 B 、 C 这些方法但没得到结果,回答 试试看 A 或是 B 或者 试试 X 、 Y 、 Z 、 A 、 B 、 C 并附上一个链接一点用都没有。
帮助你的社区从问题中学习。 当回复一个好问题时,问问自己如何修改相关文件(FAQ)或常见问题文件以免再次解答同样的问题?,接着再向文件维护者发一份 PR 。
如果你在研究一番后才作出了回答,展现你的技巧而不是直接端出结果。毕竟授人以鱼不如授人以渔。
鸣谢
|