Отладка — половина работы
Программисты шутят: «Написание кода занимает 20% времени, отладка — 80%». Это преувеличение, но с зерном правды. Умение эффективно находить и исправлять ошибки — один из главных навыков разработчика. И здесь инструменты решают.
Отладчик (Debugger)
Debugger — программа, позволяющая выполнять код пошагово, наблюдать за значениями переменных, останавливаться в нужных точках.
Точка останова (Breakpoint) — программа останавливается на указанной строке, не продолжая выполнение. Можно осмотреть состояние: все переменные, стек вызовов, память.
Step Over / Step Into / Step Out — выполнить следующую строку / войти в функцию / выйти из функции. Пошаговое выполнение даёт полный контроль над потоком программы.
Отладчики встроены в большинство IDE (VS Code, IntelliJ, Xcode). Для C/C++ — GDB. Для Python — pdb. Для JavaScript в браузере — DevTools.
Browser DevTools
Chrome/Firefox DevTools — незаменимый инструмент веб-разработчика. Elements — просмотр и редактирование HTML/CSS в реальном времени. Console — вывод ошибок и выполнение JavaScript. Network — все сетевые запросы с временем и телом. Sources — отладчик JavaScript. Performance — профилирование.
Логирование
Логирование — запись событий в программе в текстовый файл или систему агрегации. Правильный лог позволяет восстановить картину событий после инцидента без возможности воспроизвести баг вживую.
Уровни логирования: DEBUG, INFO, WARNING, ERROR, CRITICAL. В production обычно WARNING+. Централизованный сбор логов: ELK Stack (Elasticsearch + Logstash + Kibana), Grafana Loki.
Профилировщик
Profiler измеряет, сколько времени и памяти тратит каждая часть программы. Позволяет найти узкие места (bottleneck): функцию, которую вызывают миллион раз и которая работает медленно. Python: cProfile, py-spy. Java: JProfiler, YourKit. JavaScript: Chrome Performance.
