🤓 Как вы дебажитесь?
Я начинал свой путь в JavaScript начиная с IE 6 (2003-2004 годы). И пишу я это не для того, чтобы подчеркнуть какой я динозавр. Дело в том, что ни в IE6, ни в IE7 не было отладчика. Он появился только в 8-й версии. Firefox и Firebug выйдут только через несколько лет.
Как же тогда отлаживали свои скрипты? Ну, не знаю, как делали другие, а я использовал встроенную функцию alert - она приостанавливала выполнение любых скриптов и выводила на экран модальное окно, в котором текстом я мог написать нужную мне информацию. Фактически, вся отладка сводилась к расстановке alert-ов с выводом интересующих меня значений. Это было ужасно неудобно, но я привык. А когда появились отладчики для браузеров, то я просто заменил alert на console.log. Спустя годы мой способ отладки почти не претерпел изменений. Ну разве что, я стал использовать и другие методы в console.
Мой инструментарий:
1. console.log - обычное логирование;
2. console.dir - для детального логирования структуры объекта;
3. console.table - структурированный вывод информации в виде таблицы;
4. console.trace - печатает стек-трейс до инструкции;
5. console.time - для простых замеров времени.
6. debugger - если нужно приостановить выполнение скрипта.
Продвинутой работой с точками останова я пользуюсь очень редко.
Разумеется, я пользуюсь и такими инструментами как DOM Inspector, Memory Inspector, Network Inspector, Profiler, но достаточно редко. Да и положив руку на сердце владею этими инструментами весьма посредственно.
И вот тут можно сказать, что "дед выпей уже таблетки" и изучи современные инструменты. Да-да, но дело в том, что я настолько преисполнился отладкой через простые варнинги, что могу эффективно применять алгоритмы бинарного поиска и процесс отладки получается очень быстрым. Более того, все еще бывают ситуации с отладкой там, где нет возможности загрузить отладчик. Например, отладка CaptivePortal на мобильном телефоне. И там где многие сдаются - я просто расчехляю дедовские методы отладки через alert (да-да, они все еще работают).
К тому же, такая вот техника через логирование позволяет мне быстро изучать чужую кодовую базы и, даже, новые языки (только с haskell у меня были проблемы, т.к. там просто так в консоль не напишешь из-за необходимости использовать монаду IO).
Но я понимаю, что незнание современных инструментов не может быть плюсом, а только наоборот. Мысленно каждый раз обещаю себе устроить deep-dive в этом направлении (в этих же мыслях такой же dive в современный CSS), но пока все собираюсь с силами. Более того, мои более молодые коллеги по работе действительно искусно освоили новые инструменты и у них процесс отладки выглядит куда более "нормальным".
А я? А я все еще остаюсь самым быстрым console.log на диком западе. 😄
Я начинал свой путь в JavaScript начиная с IE 6 (2003-2004 годы). И пишу я это не для того, чтобы подчеркнуть какой я динозавр. Дело в том, что ни в IE6, ни в IE7 не было отладчика. Он появился только в 8-й версии. Firefox и Firebug выйдут только через несколько лет.
Как же тогда отлаживали свои скрипты? Ну, не знаю, как делали другие, а я использовал встроенную функцию alert - она приостанавливала выполнение любых скриптов и выводила на экран модальное окно, в котором текстом я мог написать нужную мне информацию. Фактически, вся отладка сводилась к расстановке alert-ов с выводом интересующих меня значений. Это было ужасно неудобно, но я привык. А когда появились отладчики для браузеров, то я просто заменил alert на console.log. Спустя годы мой способ отладки почти не претерпел изменений. Ну разве что, я стал использовать и другие методы в console.
Мой инструментарий:
1. console.log - обычное логирование;
2. console.dir - для детального логирования структуры объекта;
3. console.table - структурированный вывод информации в виде таблицы;
4. console.trace - печатает стек-трейс до инструкции;
5. console.time - для простых замеров времени.
6. debugger - если нужно приостановить выполнение скрипта.
Продвинутой работой с точками останова я пользуюсь очень редко.
Разумеется, я пользуюсь и такими инструментами как DOM Inspector, Memory Inspector, Network Inspector, Profiler, но достаточно редко. Да и положив руку на сердце владею этими инструментами весьма посредственно.
И вот тут можно сказать, что "дед выпей уже таблетки" и изучи современные инструменты. Да-да, но дело в том, что я настолько преисполнился отладкой через простые варнинги, что могу эффективно применять алгоритмы бинарного поиска и процесс отладки получается очень быстрым. Более того, все еще бывают ситуации с отладкой там, где нет возможности загрузить отладчик. Например, отладка CaptivePortal на мобильном телефоне. И там где многие сдаются - я просто расчехляю дедовские методы отладки через alert (да-да, они все еще работают).
К тому же, такая вот техника через логирование позволяет мне быстро изучать чужую кодовую базы и, даже, новые языки (только с haskell у меня были проблемы, т.к. там просто так в консоль не напишешь из-за необходимости использовать монаду IO).
Но я понимаю, что незнание современных инструментов не может быть плюсом, а только наоборот. Мысленно каждый раз обещаю себе устроить deep-dive в этом направлении (в этих же мыслях такой же dive в современный CSS), но пока все собираюсь с силами. Более того, мои более молодые коллеги по работе действительно искусно освоили новые инструменты и у них процесс отладки выглядит куда более "нормальным".
А я? А я все еще остаюсь самым быстрым console.log на диком западе. 😄