找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1422|回复: 0

[建议] 提问前需搞清XY问题,提高交流效率

[复制链接]
100 分钢镚 回复本帖可获得 1 分钢镚奖励! 每人限 1 次(中奖概率 70%)
epiman 发表于 2024-7-22 23:55:18 | 显示全部楼层 |阅读模式

注册后推荐绑定QQ,之后方才可以使用下方的“用QQ帐号登录”。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
什么是XY问题?
# E5 w$ t/ P3 \4 j" O) ^+ u
+ L, B# }1 m( cXY问题是关于正在尝试的解决方案,而不是实际的问题。无论是对于寻求帮助的一方,还是提供帮助的一方,这都会造成大量时间、精力的浪费。. D. G. |. H' [# [# t( Y

' v$ {  b# K# m4 j8 }* o& k; \7 e
  • 用户想做X。
  •     用户不知道怎么做X,但觉得如果能做到Y,就能摸索出解决方案。
  •     用户也不知道怎么做Y。
  •     用户请求对问题Y的帮助。
  •     其他人试图帮助用户解决Y,但却感到困惑,因为尝试解决Y似乎是个奇怪的问题。
  •     经过大量互动和浪费的时间后,终于发现用户其实需要X方面的帮助,而Y甚至不是对X的合适解决方案。
    ; G( O) y3 T0 c4 F2 `. {5 H$ x+ Z

) H7 h! N- n5 L& n9 V当人们被自认为的解决方案卡住,无法退一步完整解释问题时,问题就出现了。
; p9 g* e# [" f$ d( z9 a, k) [% {9 U
示例
5 P/ U6 z3 U' c' I. O) |* m* c/ o. S( L/ U( `8 O
示例1( i/ |/ H/ u5 \) U- v7 S, ^9 I5 _
n00b实际上不想要文件名中的最后3个字符,而是想要获取文件扩展名,为什么要问最后3个字符?
. u" q9 n" H, F* h
  1. <n00b> How can I echo the last three characters in a filename?
    ! g6 r9 x: M8 x* F/ X  k
  2. <feline> If they're in a variable: echo ${foo: -3}
    . A* p% r6 f$ @: g. q  j) Y
  3. <feline> Why 3 characters? What do you REALLY want?0 V; K6 ]. S. s6 T
  4. <feline> Do you want the extension?
    / i* [" b" J+ o; v# Q
  5. <n00b> Yes.
    : m1 R  F7 ~' Q2 y
  6. <feline> There's no guarantee that every filename will have a three-letter extension,
    ! L, \- B4 }( y+ s8 Q3 Q
  7. <feline> so blindly grabbing three characters does not solve the problem.' Z( {7 r% \  D) V
  8. <feline> echo ${foo##*.}
复制代码
- O9 @' [1 ], d
示例2+ k0 o+ h; \% F
如果Angela一开始就解释她想防止别人发现她的操作系统,可能讨论会更短、更有成效。1 v1 a, P  p# G; s# g* F
  1. Angela: 'nmap -O -A 127.0.0.1' returns some lines starting with 'OS:'. How to change it?
    # ?" `+ {8 R" Z) j+ k
  2. Obama: Look in the sourcecode for nmap, find how it figures out the Linux part, then rewrite your TCP/IP stack to not operate in a way nmap can detect.
    ! z/ I# T+ Z# L4 W2 h+ c
  3. Angela: Yeah, but I don't know about linux system api at all.
    ! t: s. O9 O- x4 ?9 u" q5 d
  4. Obama: Well, nmap's fingerprint is based on the way the TCP/IP stack works, there's no real way except to rewrite the appropriate parts of said stack.0 Z6 O# X4 j: D+ ?5 T
  5. Angela: I really need to avoid these messages. Can iptables do this work?
      c4 m' k/ H: I. y& l0 @. G4 @7 t
  6. Obama: Well, don't use OS detection or version scanning
    + x4 M1 S7 |4 O, H
  7. Angela: I want to prevent others from knowing the type of my OS
复制代码
中文出处:https://segmentfault.com/a/1190000044541188/ J  ]. T7 V, k% [+ R/ m7 D
英文出处:https://xyproblem.info/
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

改名|钢镚|会员|联系我们|公卫人 ( 沪ICP备06060850号-3|沪公网安备31010402334125号 )

GMT+8, 2025-8-17 00:26 , Processed in 0.054612 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表