The XY Problem

The XY Problem

原文链接 The XY Problem

什么是XY问题

XY问题是在询问您尝试的解决方案,而不是您的实际问题。 这导致提问者和回答者大量的时间和精力浪费。

  • 用户想做X。
  • 用户不知道如何做X,但认为只要能够做Y,他们就可以找到解决方案。

  • 用户也不知道该怎么做Y。

  • 用户请求有关Y的帮助。

  • 其他人试图用Y帮助用户,但感到困惑,因为Y似乎是一个很想解决的问题。

  • 经过大量的交互和浪费的时间之后,终于可以清楚地知道用户确实需要X的帮助,而Y甚至不是X的合适解决方案。

当人们陷于他们所认为的相关解决方案无法及进行,停下来并完整地解释问题时,就会出现问题。

如何解决

  1. 始终包括有关更广泛情况的信息以及任何尝试的解决方案。
  2. 如果有人要求提供更多信息,请提供详细信息。

  3. 如果您已经排除了其他解决方案,请分享您排除它们的原因。 这将提供有关您的问题的更多信息。

记住,如果您的诊断理论是正确的,您就不会寻求帮助了

例子

Example 1

n00b实际上并不需要文件名中的最后3个字符,而是想要文件扩展名,那么为什么要问最后3个字符呢?

<n00b>如何回显文件名中的最后三个字符?
<feline>如果它们在变量中:echo $ {foo:-3}
<feline>为什么要输入3个字符? 你真正想要的是什么?
<feline>您是否需要扩展名?
<n00b>是。
<feline>不能保证每个文件名都具有三个字母的扩展名,
<feline>所以盲目地抓三个字符并不能解决问题。
<feline> echo $ {foo ## *。}
Example 2

如果Angela刚开始解释说她想防止其他人检测到她的操作系统,那本来可以是简短得多且更有成果的讨论。

Angela:'nmap -O -A 127.0.0.1'返回以'OS:'开头的某些行。 怎么改变呢?
Obama:在nmap的源代码中查找,找到如何找到Linux部分,然后重写TCP / IP堆栈以使nmap无法检测到它。
Angela:是的,但是我完全不了解linux系统api。
Obama:好吧,nmap基于TCP / IP堆栈的工作方式,除了重写该堆栈的适当部分外,没有真正的方法。
Angela:我真的需要避免这些信息。 iptables可以完成这项工作吗?
Obama:好吧,不要使用操作系统检测或版本扫描
Angela:我想防止其他人知道我的操作系统类型

Be First to Comment

发表回复