StudyCode
К практике
Начальныйбаготладкаconsole.log
🐛Juniorбаготладкаconsole.logdebugger

Что такое баг и как отлаживать код

Откуда берутся баги, как использовать console.log и debugger, чтобы найти проблему.

🐛Отладка — как найти и исправить баг

Системный подход к отладке — не угадывать, а искать

🔁

Воспроизведи баг

Убедись что точно понимаешь когда он возникает. Какие данные? Какие действия?

1
🤔

Выдвини гипотезу

Что может быть причиной? Где в коде это могло пойти не так?

2
🔍

Проверь данные

console.log или debugger — посмотри что реально хранится в переменных в этот момент.

3
🔧

Исправь

Внеси минимальное изменение. Один баг — одно исправление.

4

Проверь что всё OK

Убедись что баг ушёл. Убедись что ничего другого не сломалось.

5
Шаг 1 из 2Практика
1

Откуда берутся баги

Баг — это не стыдно

Слово «баг» (bug — жук по-английски) появилось в 1947 году когда инженеры нашли настоящего мотылька внутри компьютера — он замкнул реле и сломал машину. С тех пор ошибки в программах называют багами.

Баги есть в любом программном обеспечении. Даже в коде Google и Microsoft. Главное — уметь их находить и исправлять.


Почему появляются баги?

1. Опечатки

javascript
let count = 0;
count =+ 1;  // ← опечатка! Это присваивание +1, а не count + 1
// count остался 1, не прибавляется

2. Неправильные предположения

javascript
function double(x) {
  return x * 2;
}
double("5"); // Ожидали 10, получили "55" — JS склеил строки!

3. Граничные случаи

javascript
function firstElement(arr) {
  return arr[0];
}
firstElement([]); // undefined — пустой массив не предусмотрели

4. Недопонимание требований Программист понял задачу иначе чем её сформулировали. Код работает «правильно» — но делает не то что нужно.


Отладка — это детективная работа

Когда что-то работает не так: не паникуй и не угадывай. Действуй системно:

  1. Воспроизведи баг — убедись что точно понимаешь когда он возникает
  2. Выдвини гипотезу — что может быть причиной?
  3. Проверь гипотезу — посмотри на данные в этом месте
  4. Исправь и проверь — убедись что баг ушёл и ничего нового не сломалось

Функция работает без ошибок, но возвращает неправильное значение. С чего начать отладку?