Откуда берутся баги, как использовать console.log и debugger, чтобы найти проблему.
Слово «баг» (bug — жук по-английски) появилось в 1947 году когда инженеры нашли настоящего мотылька внутри компьютера — он замкнул реле и сломал машину. С тех пор ошибки в программах называют багами.
Баги есть в любом программном обеспечении. Даже в коде Google и Microsoft. Главное — уметь их находить и исправлять.
Примеры кода ниже — на JavaScript. Синтаксис разберём подробно в модуле JavaScript; здесь достаточно уловить суть.
1. Опечатки
let count = 0;
count =+ 1; // ← опечатка! Это присваивание +1, а не count + 1
// count остался 1, не прибавляется2. Неправильные предположения
function double(x) {
return x * 2;
}
double("5"); // Ожидали 10, получили "55" — JS склеил строки!3. Граничные случаи
function firstElement(arr) {
return arr[0];
}
firstElement([]); // undefined — пустой массив не предусмотрели4. Недопонимание требований Программист понял задачу иначе чем её сформулировали. Код работает «правильно» — но делает не то что нужно.
Когда что-то работает не так: не паникуй и не угадывай. Действуй системно:
Функция работает без ошибок, но возвращает неправильное значение. С чего начать отладку?
Системный подход к отладке — не угадывать, а искать
Воспроизведи баг
Убедись что точно понимаешь когда он возникает. Какие данные? Какие действия?
Выдвини гипотезу
Что может быть причиной? Где в коде это могло пойти не так?
Проверь данные
console.log или debugger — посмотри что реально хранится в переменных в этот момент.
Исправь
Внеси минимальное изменение. Один баг — одно исправление.
Проверь что всё OK
Убедись что баг ушёл. Убедись что ничего другого не сломалось.