How to ask a good question on StackOverflow All In One
在 StackOverflow 上如何提出一个好问题
我们很乐意为你提供帮助,但为了提高你获得答案的机会,请遵循以下一些准则
:
确保你的问题切中主题并且适合本网站
Stack Overflow 仅接受有关编程
和软件开发
的某些类型的问题,并且你的问题必须用英语撰写。如果你的问题不切题
或不适合
本网站,那么它可能会被关闭。
结束并不是问题之路的终点;而是问题的终结。它旨在成为一个临时状态,直到问题得到修改以满足我们的要求。但是,如果你不这样做,或者不可能这样做,那么该问题将保持关闭状态并且不会得到回答。
既然你正在阅读此页面,希望你从一开始就发布一个合适的、切题的问题,从而消除关闭和重新打开过程的需要!
搜索和研究
在发布问题之前,我们强烈建议你花合理
的时间研究问题
并搜索本网站上可能提供答案的现有问题
。(Stack Overflow 已经存在很长时间了,许多常见问题已经得到解答。)
确保记录
你在研究时发现的内容,即使它没有帮助!如果你最终无法在本网站的其他地方找到问题的答案,
然后包含相关问题
的链接(以及为什么
它们对你的具体情况没有帮助
的解释)将有助于防止
你的问题在你最终提出问题时被标记为重复。
写一个总结具体问题的标题
标题是潜在回答者首先看到的内容。如果你的标题不有趣
,他们就不会阅读其余的内容。此外,如果没有好的标题,人们甚至可能无法找到你的问题。所以,让标题有意义
:
-
假设你正在与一位忙碌的同事交谈,并且必须用
一句话总结
你的整个问题:您可以提供哪些详细信息
来帮助别人识别并解决你的问题?包括任何错误消息
、关键 API 或使你的问题与网站上已有的类似问题不同
的异常情况。 -
不要在标题中包含
标签
。系统会自动
将最重要的标签添加到你的标题中,以达到搜索引擎优化
的目的。你不需要(也不应该)手动执行此操作。如果你想包含语言/库/框架/工具
的名称,请使用常规英语
,而不是作为括号标签。 -
如果你在总结问题时遇到困难,请
最后
写标题
- 有时,先写问题的其余部分可以更轻松地描述问题
。
例子:
- 坏 ❌: C# 数学混乱
- 好 ✅:当我的所有输入都是整数时,为什么使用 float 而不是 int 会给出不同的结果?
- 坏 ❌: [
php
]会话疑问 - 好 ✅:如何根据 PHP 中的会话数据将用户重定向到不同的页面?
- 坏 ❌: android如果有其他问题
- 好 ✅:为什么当 str 设置为“value”时,str ==“value”的计算结果为 false?
在发布任何代码之前先介绍问题
在问题正文中,首先扩展标题中的摘要
。不要直接跳到代码!提供一些背景上下文
信息通常很有帮助,用文字描述
问题几乎与用代码描述问题一样重要。
解释
你是如何遇到
你想要解决的问题的,以及阻碍
你自己解决问题
的任何困难
。你问题中的第一段是大多数读者会看到的, 第二件事,因此请使其尽可能引人入胜且信息丰富。你想给人留下良好的第一印象
。
帮助其他人重现问题
并非所有问题都可以从包含代码中受益,但如果你的问题与您编写的代码有关
,则应该包含一些代码。但不要只是复制整个程序!如果你发布雇主的代码,这不仅可能会给您带来麻烦,而且可能包含许多不相关
的细节,读者在尝试重现问题时需要忽略
这些细节。以下是一些准则:
- 仅包含足够的代码以允许其他人重现问题。如需这方面的帮助,请阅读如何创建最小的、可重现的示例。
- 如果可以创建一个可以链接到的问题的实时示例(例如,在 http://sqlfiddle.com/ 或 http://jsbin.com/ 上),那么就这样做,但也将代码复制到问题本身。并非每个人都可以访问外部站点,并且链接可能会随着时间的推移而断开。使用 Stack Snippets 制作内联 JavaScript/HTML/CSS 的现场演示。
- 不要发布代码、数据、错误消息等的
图像
。将文本复制或输入到问题中。请保留使用
图像来绘制图表
或演示渲染错误
,以及无法
通过文本准确描述
的事情。有关更多信息,请参阅元常见问题解答条目提问时为什么不要上传代码
/错误
的图像?
包含所有相关标签
尝试包含你的问题所涉及的语言
、库
和特定 API
的标签。如果你开始在标签字段中输入内容,系统将建议与你输入的内容相匹配的标签 - 请务必阅读为它们提供的描述,以确保它们与你提出的问题相关!
如果你的问题涉及特定版本的语言、库和/或 API 中的问题,你可能需要添加特定于版本
的标签,例如[python-3.8]
。如果你确实使用特定于版本的标签,请确保还包含主要的非特定于
版本的标签(例如[python]
)。
另请参阅:什么是标签,我应该如何使用它们?
发帖前请校对
!
现在你已经写完了问题,请深呼吸并从头到尾通读一遍。假装你是第一次看到它:它有意义
吗?没有你所有背景知识的人能理解
它吗?尝试在新的环境中自己重现问题
,并确保你可以仅使用问题中包含的信息来重现问题。添加你错过的所有详细信息并再次通读。重新阅读你的标题,并确保它简洁准确
地描述了问题。
另外,拼写
、语法
和标点符号
也很重要!如果你不习惯用英语写作,请请人为你校对。
发布后回复反馈
发帖后,不要跑得太快——将问题在浏览器中打开一段时间,看看是否有人发表评论。如果你错过了一条明显的信息,请准备好通过编辑你的问题以将其包含在内来做出回应
。如果有人发布答案,请准备好尝试并提供反馈
!
有时,你可能会发现自己对这些评论感到沮丧。也许他们提出的建议你已经尝试过。也许他们完全误解了你的问题。尽量不要感到沮丧——阅读和评论你的问题的人通常都想
提供帮助
!将这些类型的评论作为如何改进
您的问题的建议
。请记住,你可以随时编辑您的问题!(如果有人确实留下了粗鲁或不相关的评论,请将其标记以引起版主
注意,以便将其删除。)
寻求帮助
尽管您付出了一切努力,你可能会发现你的问题没有得到很好的回应。不要绝望!学会提出好问题
是一项值得追求的事情,而不是一朝一夕就能掌握的。以下是一些你可能会觉得有用的其他资源:
demos
(? 反爬虫测试!打击盗版⚠️)如果你看到这个信息, 说明这是一篇剽窃的文章,请访问 https://www.cnblogs.com/xgqfrms/ 查看原创文章!
refs
https://stackoverflow.com/help/how-to-ask
©xgqfrms 2012-2021
www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!
原创文章,版权所有©️xgqfrms, 禁止转载 ?️,侵权必究⚠️!