frontend

ЯК ЗАДАВАТИ ПИТАННЯ

Як Отримати Допомогу Наче Босс

:heavy_exclamation_mark:БУДЬ ЛАСКА ПРОЧИТАЙТЕ ПОВНІСТЮ:heavy_exclamation_mark:

ВСТУП

У світі хакерів, відповіді, які ви отримаєте на свої технічні запитання, настільки ж залежать від того як саме ви задасте своє питання, як і від складності формулювання цієї відповіді. Цей гайд навчить вас як задавати питання так, щоб з найбільшим шансом отримати відповідь яка вас задовольнить.

Іноді може здаватись що ми відштовхуюче грубі з новачками, або приділяємо їм мало уваги. Але насправді це зовсім не так. Будь ласка, спробуйте краще задати питання :smile_cat:

Загальна Структура Питання

Дуже важливо надавати своїй аудиторії належний контекст. На щастя, надання контексту у програмуванні набагато простіше ніж в інших сферах.

Щоб надати зворотній зв’язок за вашим питанням, будь ласка, використовуйте структуру запитів, що наведена нижче. Авжеж, конкретні слова не повинні бути такими самими, все залежить від вашої ситуації.

  1. Я виконую ….. (наприклад, назва завдання та посилання на опис завдання).
  2. Я хочу ….. (досягти чогось, наприклад зробити так, щоб один елемент на сторінці був поверх усіх інших).
  3. Я спробував це ….. (фрагмент коду, codepen з мінімальним але основним шматком коду, який дозволяє відтворити проблему).
  4. Як мені це зробити? / Що я пропустив?

Перед Тим Як Питати

Перед тим як задати питання, виконайте наступне:

  1. Якщо ваше питання про курс - FAQ.
  2. Якщо ваше питання про вправи - гарним місцем запитати може бути якийсь з наши чатів.
  3. Якщо ваше питання про JS або HTML/CSS - пошукайте в Інтернеті, MDN тощо.
  4. Ви також можете самі знайти відповіть методом експериментування та дослідження.
  5. Ви програміст! Спробуйте знайти відповіть читаючи вихідний код.

Коли ви задаєте питання, покажіть, що ви спочатку спробували ці методи; це допоможе показати, що ви не лінитесь та не гаєте свій час та час інших. Що навіть краще, покажіть чому ви навчились, виконуючи ці речі. Нам подобається відповідати на питання людей, які демонструють що вони зможуть навчитись з цих відповідей.

Не поспішайте. Не очікуйте, що вдасться вирішити складну проблему парою секунд Гуглінгу. Розслабтесь, візміть чашку чаю та добряче подумайте над проблемою перш ніж турбувати експертів. Повірте, вони зможуть по вашому питанню зрозуміти наскільки багато читання та розмірковування у вас пішло на задачу, та захочуть допомогти, якщо побачать що ви прийшли підготовленими. Не вистрілюйте весь свій арсенал питань просто тому що ваш перший пошуковий запит не видав вам жодних відповідей (або забагато відповідей).

Підготовте ваше питання. Продумайте його. Поспішні питання отримують поспішні відповіді, або зовсім ніяких. Чим більше ви покажете, що ви подумали над проблемою, та додали до неї зусиль перед тим як шукати допомоги, тим більше шанс того що ви її отримаєте.

Пам’ятайте, не існує “дурних питань”.:wink:

Коли Ви Питаєте

Приклади Підходів

Підхід 1 (поганий)

Питання накшталт

Я намагаюсь дістати дані з сервера та відтворити їх на веб сторінці, але нічого не відбувається. Що я роблю не так?

потребують забагато уточнень, тому можуть бути проігноровані спільнотою.

Підхід 2 (гарний)

Альтернативних підхід наведено нижче.

Я намагаюсь дістати дані з сервера наступним чином.

const query = "https://api.somewhere.else/?id=5";
let info;
fetch(query).then(response => {
  if (response.ok) {
    return response.json();
  }
  throw Error('Querying ' + query + ' failed');
}, reject => console.error(reject.message))
.then(json => {
  info = json.results;
  return;
});
document.getElementById('output').innerHTML = info.name;

info отримує дані з відповіді сервера, але елемент output не оновлюється, як мав би. У чому моя помилка?

Фрагмент вище надає необхідний контекст і досвідчений розробник вирішить проблему миттєво.

Такий підхід вимагає трішки більше зусиль від того хто задає питання, а саме скопіювати та вставити фрагмент коду. Але це значно підвищить шанс отримання відповіді.

Підхід 3 (комплексна проблема)

Що якщо фрагмент коду занадто великий і щоб добре побачити проблему потрібно відтворити її у інтерфейсі?

Опублікуйте codepen або використайте схожий сервіс.

Після цього відправте посилання на код та коментарі з запитаннм до чату спільноти.

Підхід 4 (ще більш комплексна проблема)

Що якщо проект занадто великий для використання codepen і ви не можете виокремити його частину для нормального відображення проблеми?

Створіть pull request-чернетку для перегляду коду!

Це одна з ситуацій, в яких такі pull request-чернетки можуть бути використані.

Ви можете відкрити PR в вашому власному репозиторії. Розмістіть фрагмент коду з помилкою у окрему гілку, опублікуйте проект (наприклад, на GitHub Pages) та запросіть інших переглянути ваш код.

Вам можливо знадобиться долучити їх як співпрацівників через налаштування проекту. Так що, запрошуйте тільки тих кому ви довіряєте, та тих хто хоче щоб їх запросили.

Інструменти для використання з Front-End

ЯКЩО ВИ ВИКОРИСТАЄТЕ ЦІ ІНСТРУМЕНТИ ДЛЯ ВІДОБРАЖЕННЯ ВАШОГО КОДУ ВИ ЗМОЖЕТЕ ШВИДШЕ ОТРИМАТИ ВІДПОВІДЬ.

Де Задати Питання

:heavy_exclamation_mark:Будь ласка, НЕ відправляйте в чати код, що займає більше 5 рядків:heavy_exclamation_mark:

Використайте online сервіси для цього.

:heavy_exclamation_mark:Будь ласка, НЕ відправляйте свій код у вигляді скріншотів, тому що це може змусити читачів передрукувати код, щоб побачити як він працює:heavy_exclamation_mark:

Більшість чат-додатків (наприклад, Telegram) підтримують Markdown. Розташуйте ваш код між та (два рядка, що містять зворотні галочки (backtick)), щоб ваш код був коректно відформатований (приклад нижче).

    ```
    <!-- ваш код -->
    ```

Клавіши Shift або Alt разом з Enter дозволять вам писати повідомлення, що складаються з декількох рядків.

Додаткові Матеріали

Якщо ви хочете дізнатись більше деталей на цю тему або побачити інші ресурси, зверніть увагу на наступні матеріали: