提問的智慧
正在提問時

精確描述問題

精確描述問題,是讓別人能夠繼續診斷的前提。你不需要一次寫成論文,但必須提供足夠事實,讓回答者不用先反覆追問最基本的信息。

需要寫清楚的信息

  • 仔細、清楚地描述你的問題或 Bug 的症狀。
  • 描述問題發生的環境(機器配置、操作系統、應用程序、以及相關的信息),提供經銷商的發行版和版本號(如:Fedora Core 4Slackware 9.1等)。
  • 描述在提問前你是怎樣去研究和理解這個問題的。
  • 描述在提問前為確定問題而採取的診斷步驟。
  • 描述最近做過什麼可能相關的硬件或軟件變更。
  • 儘可能地提供一個可以重現這個問題的可控環境的方法。

預先回答可能的追問

儘量去揣測一個黑客會怎樣反問你,在你提問之前預先將黑客們可能提出的問題回答一遍。

你可以把自己放在回答者的位置上想一想:

  • 我知道問題在哪個版本、哪臺機器、哪種配置下發生嗎?
  • 我知道它是穩定復現,還是偶爾出現嗎?
  • 我知道提問者已經排除了哪些原因嗎?
  • 我能照著描述復現同樣的問題嗎?

如果答案是否定的,就繼續補充信息。

可復現環境尤其重要

以上幾點中,當你報告的是你認為可能在代碼中的問題時,給黑客一個可以重現你的問題的環境尤其重要。當你這麼做時,你得到有效的回答的機會和速度都會大大的提升。

“可復現”不一定意味著完整複製你的生產環境。一個最小示例、一段觸發錯誤的配置、一組輸入數據,或者一條明確的命令,都可能足以讓別人觀察同樣的現象。

延伸閱讀

Simon Tatham 寫過一篇名為《如何有效地報告Bug》的出色文章。強力推薦你也讀一讀。