返回片段

发布于  2024 年 10 月 21 日,星期一

如何提问问题

在前端开发过程中如何有效地提问问题。博客内容可能包括提问前的准备工作,如明确问题的背景、复现步骤和预期结果;提问时的技巧,如使用简洁明了的语言、提供必要的代码片段和错误信息;以及提问后的跟进,如如何处理回复和进一步澄清问题。通过这些内容,博客旨在帮助前端开发者提高问题解决的效率,促进技术社区的交流与合作。

提问的智慧

原文版本历史https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/history.md

目录

在提问之前

  • 要通过电子邮件,新闻群组或者聊天室提出技术问题前,做到一下事情:
    1. 尝试在你准备提问的论坛的旧文章中寻找答案
    2. 尝试上网搜索找打答案
    3. 尝试阅读手册找到答案
    4. 尝试阅读常见问题文件(FAQ)找到答案
    5. 尝试自己检查或实验找到答案
    6. 向你身边的强者朋友打听找到答案
    7. 如果你是程序开发者,尝试阅读源代码找到答案
  1. 当你提出问题的时候,请先表明你做了上述的努力,这更有助于树立你并不是一个不劳而获的提问者。
  2. 运用某些策略,可用自己找到的各种信息组合在一起再进行思考,即使没有结果也可以在询问语句中添加,我在尝试解决时
    没有找到什么有用的东西。
  3. 准备好你的问题后,再将问题仔细阅读一遍,不要草率的发问,越是在询问时表达出你为解决问题所付出的努力,就越有
    可能得到实质性的帮助。
  4. 不要问错了问题
  5. 表明在找答案的过程中做点什么,例如:谁能给点提示?我的这个例子中缺少了什么?我应该检查什么地方?等等

当你提问时

  1. 搞清楚你的主题

  2. 使用有意义且描述明确的标题

    • 好标题范例:目标 --- 差异

      • 目标部分:知道是哪一个或那一组东西有问题
      • 差异部分:描述与期望的行为不一致的地方
    • 例子:

      • 蠢问题:救命啊!我的笔记本电脑不能正常显示了!
      • 聪明问题:X.org 6.8.1 的鼠标指针会变形,某牌显卡 MV1005 芯片组。
      • 更聪明问题:X.org 6.8.1 的鼠标指针,在某牌显卡 MV1005 芯片组环境下 - 会变形。
  3. 使用清晰,正确,精准且合乎语法的语句

    • 正确的拼写,标点符号,大小写很重要
  4. 使用易读取且标注的文件格式发送问题

  5. 精准的描述问题

    1. 描述问题发生的环境
    2. 在提问前你是怎样去研究和理解这个问题的
    3. 在提问前为确定问题而采取的诊断步骤
    4. 描述最近做过什么可能相关的硬件或软件变更
    5. 尽可能提供一个可以重新这个问题的可控环境的方法
    • 注意:尽量去揣测一个回答者会怎样反问你,在提问之前预先将回答者可能提出的问题回答一遍
  6. 话不在多而在精

  7. 别动辄声称找到了 Bug

    • 如果在使用软件中遇到问题,如果你能提供解决问题的源代码补丁是最好的。
  8. 别低声下气的询问问题,这样没有什么用处

  9. 按发生时间先后列出问题症状

    • 问题发生前一系列操作,往往是对找出问题最有帮助的线索,因此,在描述中添加你的操作步骤
    • 如果你的问题够长,在开头简述问题时,接下来再按时间顺序详述。
  10. 描述目标而不是过程

    • 想要弄清楚某件事(而不是说一个 Bug),在开头时就描述你的目标,然后再陈述重新啊你所卡住的特定步骤
  11. 清楚明确的表达你的问题以及需求

  12. 询问有关代码的问题

    • 最有效的描述程序问题的方法提供一个最精简的 Bug 展示测试用例。
  13. 去掉无意义的提问句

  14. 即使你很急也不要在标题中写紧急

  15. 礼多人不怪,有时很有帮助

如何解读答案

  1. 蠢问题案例:
    • 我能在哪找到 X 程序或 X 资源?
    • 我怎样用 X 做 Y?
    • 如何设定我的 shell 提示?
    • 我可以用 Bass-o-matic 文件转换工具将 AcmeCorp 文件转换为 TeX 格式吗?
    • 我的程序/设定/SQL 语句没有用
    • 我的 Windows 电脑有问题,你能帮我吗?
    • 我的程序不会动了,我认为系统工具 X 有问题
    • 我在安装 Linux(或者 X )时有问题,你能帮我吗?
    • 我怎么才能破解 root 帐号/窃取 OP 特权/读别人的邮件呢?
  2. 如何更好的回答问题?
    1. 态度和善一点
    2. 对触犯者私下恢复
    3. 如果不确定,一定要说出来!
    4. 如果帮不了忙,也别妨碍他。
    5. 是泰兴的反问以引出更多的细节
    6. 如果你决定回答,请给出好的答案
    7. 正面的回答问题
# 代码质量# 设计模式# 算法# 数据结构# Git