<翻译> X-Y Problem

什么是XY problem,抛开定义举个例子先:

1.举个例子

Q:有没有个函数能返回两个分隔符之间的字符串?
B:我不知道你说啥,但我觉得有。
C:splitsplice呗。
D:Partition也行
Q:我试着用builtins得到字符串”attribute1: 50.223, attribute2: 442.1”中的数字。
D:为啥不直接解析字符串呢?
Q:我觉得(python) 有内建的解析函数。
D: 这样

pairs = [x.strip() for x in s.split(",")];
attribs = {k: v for x in pairs for k, v in [x.split(": ")]}

D:虽然有一些库,但我觉得这样已经足够简单了(如果你不关心错误处理的话)
D:如果可以的话用一些比较好的原始数据,比如json或yaml就简单多了。
Q:代码实际上来自于HTML
Q:我不知道怎样用HTML解析器或者别的来解析JavaScript
D:是不是仅仅嵌入在HTML里或者是拼版的HTML?
Q: 对,是嵌在HTML里的。
D: 如果是JavaScript,json就可以解析它。
Q: 谢谢
D:我没有说明白:json只是解析了数据结构,不是js代码
Q:我要解析的就是数据结构.
来源:what-is-the-xy-problem

2.定义

回过头来看X-Y problem

1)有人想解决问题X
2)他觉得Y可能是解决X问题的方法
3)但是他不知道Y应该怎么做
4)于是他去问别人Y应该怎么做?

来源:提问的智慧:X-Y PROBLEM

3.分析

也就是说,在上述例子中,

Q原本的目的是想解析HTML中嵌入的JavaScript中的数据 (X problem)

而他不知道如何解析JS,因此他自己想了个办法

有没有个函数能返回两个分隔符之间的字符串? (Y problem)

因此他花费了大量的时间来解决Y,岂不知单单改变数据格式json就可以解决问题。

感谢稀稀拉拉的赞赏