6 ошибок, которых следует избегать, задавая вопросы на StackOverflow
Я слышал, как люди утверждают, что StackOverflow — очень закрытое сообщество, члены которого склонны враждебно относиться к новичкам. Эти слова часто исходят от новичков на платформе. Как модератор, участник и пользователь StackOverflow, я обнаружил, что процесс рецензирования и понижения голосов поначалу немного раздражает, но позже я узнал, почему они имеют тенденцию быть строгими и как задавать осмысленные вопросы на этой платформе.
Как вы знаете, StackOverflow — крупнейший в мире сайт вопросов и ответов для профессиональных и увлеченных программистов. Всякий раз, когда у вас возникает проблема, для которой вам нужно решение, результаты поиска Google всегда будут содержать две или три ссылки на связанные вопросы в StackOverflow. Но как сообществу удалось завоевать такое доверие и популярность? Тот же самый процесс проверки в сочетании с признанием правильных ответов и правильных людей сделал это сообщество тем, чем оно является сегодня.
Итак, как мы можем извлечь максимальную пользу из такой платформы? Если у нас есть реальная проблема с языком, фреймворком или программным обеспечением, решение которой нельзя найти в Google или на авторизованных веб-сайтах, как мы можем задать вопрос в StackOverflow, не получив отрицательных голосов или не попросив сами обратиться к руководствам? Это можно легко сделать, избегая следующих ошибок:
Не гуглить перед тем, как задать вопросы
Чаще всего, если вы столкнулись с проблемой, связанной с хорошо зарекомендовавшим себя языком программирования или фреймворком, простой поиск в Google/Bing должен помочь вам найти ответ или привести к самостоятельному решению. Как модератор StackOverflow, иногда тривиальные вопросы, на которые я уже много раз отвечал, отталкивают меня, и у меня возникает соблазн пометить их как закрытые. Хотя я хочу быть милым с людьми, плохо знакомыми с миром программирования, я хотел бы попросить их публиковать вопросы на StackOverflow только в том случае, если на них ранее не было ответов. Это очень помогло бы с ранжированием страницы и предотвратило бы загромождение платформы множеством повторяющихся вопросов.
Не добавляя достаточно деталей
Убедитесь, что вы добавили достаточно подробностей о проблеме, с которой столкнулись. Такие вопросы, как «Мой класс AnotherClassName.java генерирует исключение NullPointerException. Не могли бы вы помочь мне избавиться от него?» только вызовет отрицательные голоса и потенциально отложит ваш вопрос, пометив его как «неясно, о чем вы спрашиваете». Если вам нужен ответ на вопрос, вы должны добавить содержимое AnotherClassName.java и вывод трассировки стека полученного вами исключения NullPointerException.
Добавление только сведений об ошибке без упоминания того, что это такое
Иногда я сталкивался с такими вопросами:
WARNING: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'tennisCoach': Unsatisfied dependency expressed through method 'setFortuneService' parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.luv2code.springdemo.FortuneService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} Exception in thread "main" org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'tennisCoach': Unsatisfied dependency expressed through method 'setFortuneService' parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.luv2code.springdemo.FortuneService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:667)
Ни головы, ни хвоста. Абсолютно не имеет смысла без добавления подробностей о том, о чем идет речь. Если вы не опубликуете соответствующий код и конфигурации Spring, никто в StackOverflow практически не сможет найти для вас решение.
Вопросы, основанные на мнении
Модераторы Stackoverflow не склонны поощрять вопросы с мнениями, рекомендациями и т. д. для книг или программного обеспечения. Таким образом, эти вопросы могут привлечь отрицательные голоса, даже если намерение их задать хорошее.
Некоторые вопросы, как правило, показывают тривиальные ошибки, которые могут быть просто типографскими ошибками, которые должны исчезнуть, если первоначальный автор обратил внимание на сообщение об ошибке. Такие вопросы определенно привлекут отрицательные голоса и закрытие. В настоящее время трудно найти язык программирования, который не поддерживается ни одной из существующих IDE. Лучше научиться отлаживать свой код и исправлять ошибки самостоятельно, прежде чем копировать и вставлять ошибку в StackOverflow. Вы узнаете больше по мере отладки.
У Stack Exchange так много сайтов сообщества QnA, которые основаны на разных темах, и StackOverflow — лишь один из них. Обязательно задайте правильный вопрос в правильном сообществе StackExchange. Например, если ваш вопрос связан с информационной безопасностью, лучше задать его на
Если вы избежите всех этих ошибок, я уверен, что вы сможете задать хорошо принятый вопрос на StackOverflow и получить за это ответ и хорошую репутацию.