XY-проблема — это ситуация, когда человек спрашивает не о своей настоящей проблеме (X), а о каком-то частном способе её решения (Y).
В итоге тратится огромное количество времени и сил — как у человека, задающего вопрос, так и у тех, кто пытается помочь.
Как это происходит
Проблема возникает тогда, когда человек зацикливается на своём предположительном решении и не объясняет исходную задачу целиком.
Как избежать XY-проблемы
💡 Помните: если бы вы точно знали, что ваша идея правильная — вы бы не спрашивали совета, верно?
Примеры
Новичок на самом деле хочет получить расширение файла, но спрашивает, как вывести последние 3 символа имени файла.
<bob> Как вывести последние три символа имени файла?
<feline> Если имя в переменной: echo ${foo: -3}
<feline> Почему именно три символа? Что ты на самом деле хочешь сделать?
<feline> Хочешь получить расширение файла?
<bob> Да.
<feline> Но не у всех файлов расширение состоит из трёх букв.
<feline> Так что просто взять три последних символа — плохое решение.
<feline> Попробуй так: echo ${foo##*.}
Если бы Анджела сразу сказала, что хочет скрыть тип своей операционной системы, разговор был бы гораздо короче и полезнее.
Angela: Команда "nmap -O -A 127.0.0.1" выводит строки, начинающиеся с "OS:". Как это изменить?
Obama: Посмотри исходники nmap, найди, как определяется Linux, и перепиши стек TCP/IP, чтобы он вёл себя иначе.
Angela: Но я не знаю API Linux.
Obama: Отпечаток nmap основан на поведении TCP/IP-стека, по-другому не получится — только переписав его.
Angela: А может, iptables это умеет?
Obama: Просто не используй определение ОС или сканирование версий.
Angela: Мне нужно, чтобы другие не могли узнать тип моей ОС.
первоисточник: https://xyproblem.info/