JavaRush /Курсы /Модуль 1: Web Core /Отладка программы

Отладка программы

Модуль 1: Web Core
19 уровень , 8 лекция
Открыта

9.1 Появление багов

Отладка программного обеспечения — это процесс поиска и исправления ошибок или багов в программе. Это самая интересная часть разработки программного обеспечения, которая помогает обеспечивать правильную работу программ.

История появления термина "bug"

Термин "bug" (ошибка) в контексте компьютерных программ впервые стал использоваться в 1940-х годах. Хотя сама концепция "багов" существовала и до появления компьютеров, обозначая механические неисправности в различных устройствах.

Первый задокументированный случай использования термина "bug" в компьютерной технике был с командой, работавшей на компьютере Mark II в Гарвардском университете в 1947(!) году. Команда обнаружила, что одна из реле машины не работало из-за того, что в нее попала моль. Они удалили насекомое и записали это в журнал как "первый реальный случай обнаружения насекомого" (literal bug).

Хотя это и не было первым случаем использования термина "bug" для обозначения ошибки, этот инцидент стал известным и способствовал популяризации термина «bug».

bug

Отладка программы

Отладка — это процесс поиска, диагностики и исправления багов в программном обеспечении. Процесс отладки включает несколько этапов:

  1. Обнаружение ошибки: определение симптомов, указывающих на наличие ошибки в программе.
  2. Воспроизведение ошибки: создание условий, при которых ошибка проявляется снова, чтобы лучше понять ее природу.
  3. Диагностика проблемы: использование различных инструментов и методов для анализа кода и поиска причины ошибки.
  4. Исправление ошибки: внесение изменений в код для устранения ошибки.
  5. Тестирование: проверка исправления и тестирование программы, чтобы убедиться, что ошибка устранена и не появились новые проблемы.

Так что баг (bug) — это общее название для любых ошибок в программах, а дебаг(de-bug) — это процесс обнаружения и устранения этих самых ошибок.

9.2 Инструменты и методы отладки

Логирование

Добавление логов в код программы позволяет отслеживать ее выполнение и получать информацию о состоянии переменных и операций в различных точках выполнения программы. Для логирования в JavaScript есть отличная библиотека — winston.

Пример использования логирования:

JavaScript
    
      const { createLogger, format, transports } = require('winston');

      // Создаем логгер с уровнем отладки
      const logger = createLogger({  level: 'debug' });

      // Функция деления
      function divide(a, b) {
        logger.debug(`Деление ${a} на ${b}`);
        if (b === 0) {
          logger.error("Попытка деления на ноль!");
          return null;
        }
        return a / b;
      }

      // Пример использования функции
      const result = divide(10, 2);
      console.log(result); // Выведет: 5
    
  

Использование отладчиков (Debuggers)

Отладчики — это инструменты, которые позволяют разработчикам выполнять программу пошагово, устанавливать точки остановки (breakpoints), проверять значения переменных и изменять их во время выполнения программы.

Популярные отладчики для JavaScript:

  • Chrome DevTools: встроенный отладчик в браузере Google Chrome
  • Firefox Developer Tools: встроенный отладчик в браузере Mozilla Firefox
  • Node.js Debugger: встроенный отладчик для серверного JavaScript в Node.js
  • Visual Studio Code Debugger: отладчик, встроенный в редактор Visual Studio Code

Пример использования отладчика в Node.js:

JavaScript
    
      // Импорт встроенного модуля отладки
      const { inspect } = require('util');

      // Пример функции с ошибкой
      function faultyFunction(a, b) {
        debugger; // Установка точки останова
        let result = a / b;
        return result;
      }

      // Вызов функции с ошибкой
      console.log(faultyFunction(10, 0));
    
  

Когда программа достигает debugger, она останавливается, и вы можете использовать команды отладчика, такие как шаг вперед (step over), вход внутрь (step into), выход (step out), проверка значений переменных и другие.

Мы с вами будем изучать дебаг программ на примере отладчика, встроенного в Intellij IDEA (нужна версия Ultimate Edition).

9.3 Использование debug

В общем виде debug включает в себя активное использование инструментов отладки и практик для выявления и устранения ошибок.

Шаги отладки:

  1. Установка точек останова: установите точки остановки в коде, чтобы остановить выполнение программы в интересующих вас местах.
  2. Пошаговое выполнение: выполняйте программу шаг за шагом, наблюдая за изменениями в состоянии программы и значениями переменных.
  3. Анализ переменных: изучайте значения переменных и выражений на различных этапах выполнения программы, чтобы выявить некорректные данные или логические ошибки.
  4. Исправление ошибок: внесите изменения в код для устранения найденных ошибок.
  5. Повторное тестирование: после исправления ошибок проведите тестирование программы, чтобы убедиться, что ошибка устранена и не возникли новые проблемы.

Выглядит просто, не так ли? Вот в следующей лекции мы подробно по всем этапам и пройдемся :)

1
Задача
Модуль 1: Web Core, 19 уровень, 8 лекция
Недоступна
Фильтрация чисел
Фильтрация чисел
1
Задача
Модуль 1: Web Core, 19 уровень, 8 лекция
Недоступна
Сумма массива
Сумма массива
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ