Периодически вижу вопросы типа:
- Где здесь ошибка?
- Почему не работает мой код? (или чужой код)
- и т.д. (формулировка в заголовке может быть более точной, но сути это не меняет)
В общем случае решением будет поиск причины с помощью
отладки кода. При этом, вопрос обычно с виду не похож на задачу, то есть не попадает под
п.5.12. (задачи и задания). В целом, на такой вопрос редко жалуются, и даже охотно пытаются помочь автору.
Но с моей точки зрения это - самая что ни на есть задача. Но с некоторыми оговорками! И эти оговорки не позволяют разделить на чёрное и белое, к сожалению.
Очевидно, что такой вопрос имеет однозначный ответ - указание места, где содержится ошибка. Это и будет решением. Но поиск этой ошибки в общем случае требует воссоздания тестовой среды для выполнения кода. Ведь отладка в любом случае предполагает исполнение кода с целью проверки гипотез. И вот самих гипотез может быть очень много. Поэтому, без проведения отладки, ответ получается не однозначный, по типу: это может быть А, Б, или Ц, или что угодно ещё.
Периодически бывает, что код короткий, и опытный программист может сделать отладку как бы в уме. Но это всё равно отладка! Так или иначе отвечающему нужно полностью загрузить код в свою голову (пусть и короткий), чтобы ухватить суть его работы и найти логическую ошибку. Или же пройтись глазами по инструкциям, и найти синтаксическую ошибку - это тоже отладка.
Иногда автор вопроса приводит код, но не говорит, какая именно ошибка произошла, а просто жалуется, что "код не работает" или "что-то пошло не так", "не получается" и т.д. Иногда даже сам код не приводит. Или, наоборот, копипастит код на 200+ строк. Как правило, автор не перечисляет, что он уже пробовал, а что - нет (и что из этого сработало, а что - нет). В результате вопрос практически сводится к "сделайте плиз отладку за меня".
Но, простите, что?! Не слышал про отладку вообще? А кто тогда автор вопроса такой? Он программист или кто? Или
кто? Или заказчик, которому лень нанять спеца, но он почему-то полез в код и пытается исправлять в нём ошибки?
Как отвечающий, я стараюсь решить проблему прежде всего того, кто задаёт вопрос. Но что считать проблемой в подобных вопросах? Это вообще программная проблема или же это проблема автора, что он полез не в свою сферу? Или если второе, то как ему на это указать, чтобы выглядело не слишком грубо, не как посыл? Ведь если автора послать набираться опыта или учиться, то это НИКАК не решит данную конкретную проблему, которую ОН считает проблемой здесь и сейчас. Более того, если автор рассматривает данный ресурс, как источник бесплатных программистов, которые на другом конце провода будут делать за него отладку (то есть по сути работать на автора), то в таком случае пропадает и само желание отвечать.
А если всё же заняться такой странной "отладкой", то получается "испорченный телефон". Запусти то, набери в консоли это, попробуй так.... а если вот так? а если эдак, то что? Немного напоминает тех. поддержку.
Самое интересное, что некоторые вопросы действительно достойны того, чтобы на них ответить. Это вопросы, в которых содержится некий
парадокс. То есть автор вопроса приводит всю нужную информацию, кратко рассказывает, что уже перепробовал и где именно затык, и из текста вопроса вытекает некое противоречие. То есть автор говорит: "Здесь ошибки не может быть потому-то и потому-то, я в этом разобрался, но по факту ошибка есть. Как же так? Почему так? Я сошел с ума или вселенная сошла с ума?" Вот что-то из этой серии действительно интересно, и в то же время касается отладки. При этом, это обычно какие-то простые примеры аля
0.1 + 0.2 == 0.3
или код на 5-10 строк, не более, чтобы
любой смог
легко попробовать у себя и убедиться.
TL;DR
Так как же быть с подобными вопросами? Жалоба "ответ требует отладки" пока что не предусмотрена. Если всё же делать отладку, то по сути это работа. И даже если сделать эту работу, то она будет медвежьей услугой автору, который хочет быть программистом. А послать автора учиться - обычно не является ответом с точки зрения автора.