Отладка

Отладка расчетных функций

Сложность отладки многоуровневых расчетных функций заключается в том, что данные проходят множество трансформаций и даже если заметна ошибка в результате не всегда понятно на какой именно фазе обработки она возникла. Для идентификации точки возникновения проблем используют: Условия срабатывания точек отладки (conditional breakpoints) которые поддерживают некоторые IDE; Отладка с использованием конструкций if (условие) внутри которой ставится точка остановки. Добавляя условия и перемещая точки отладки в разные уровни программы сможете сужать количество возможных вариантов и локализуете ошибку.

Помните, что лучше всего разрабатывать подобные алгоритмы при помощи тестов. Тестирование, в частности TDD, при правильном его использовании позволяет полностью отказаться от процесса отладки в силу того, что при использовании этого подхода вы всегда решаете только одну конкретную задачу (сфокусированы прохождение условия неработающего теста) в том время как другие тесты проверяют отсутствие деградаций.

Особенности реализации в некоторых языках могут усложнять отладку. Некоторые реализации хешей (например в Go) возвращают значение при циклическом проходе в случайном порядке.

Отладка последовательности перерисовки элементов в UI фреймворках

Repaint Rainbow - функция отладки приложения которая выделяет цветами перерисовываемые элементы экрана; Позволяет идентифицировать и оптимизировать места в которых происходит нежелательная перерисовка (refresh) элементов экрана.

Отладка JavaScript/TypeScript в браузере

Для активации режима отладки в браузере при использовании транспиляторов (например TypeScript) или полифилов необходимо подключить Source Maps. Для включение режима отладки в IDE JetBrains необходимо в режиме отладки добавить и настроить конфигурацию JavaScript Debug которая запустит браузер в режиме отладки, сам веб сервис может быть запущен параллельно из любой среды выполнения (поддержка отладки со стороны сервера не требуется).

Last updated