Выровняйте свои журналы браузера javascript с помощью советов console.log()
Фундаментальное правило разработки программного обеспечения заключается в том, что программное обеспечение может дать сбой. Что отличает новых разработчиков от опытных, так это то, как они планируют эти сбои. Надежное и эффективное ведение журнала является важной частью планирования сбоев и возможных мер по их устранению. Как и в случае с бэкэнд-разработкой, ведение журнала может быть полезным для разработки программного обеспечения для внешнего интерфейса, но оно идет гораздо дальше, чем просто устранение неполадок и отладка. Эффективное ведение журнала внешнего интерфейса также может сделать процесс разработки продуктивным, быстрым и увлекательным.
Хотя я большой сторонник и усердный практик разработки через тестирование, мне нравится гибкость, богатство информации и уверенность в коде, которые браузеры обеспечивают разработчикам интерфейсов, которые эффективно используют console.log()
. Я решил поделиться некоторыми советами и приемами ведения журнала внешнего интерфейса, которые я изучил и включил в свой рабочий процесс с течением времени при создании Firecode.io - в надежде, что некоторые из них помогут вам сделать ваш рабочий процесс разработки немного более продуктивным и веселье!
Мне нравится делить эти советы на две широкие категории — быстрое и грязное ведение журнала, когда вы активно создаете и отлаживаете свое приложение, и надежное ведение журнала в рабочей среде — чтобы знать, когда ваше приложение работает должным образом, а когда нет.
Не используйте console.log().
Да это правильно. Я не использую console.log()
. Что ж, ладно, я пишу обертки, которые используют console.log()
(подробнее об этом в разделе производственного логирования), но если вы хотите что-то логировать в своем приложении, чтобы увидеть, что происходит, используйте вместо этого console.trace()
. Помимо предоставления вам всего, что делает console.log()
, он также выводит всю трассировку стека, чтобы вы знали, откуда именно отправляется сообщение.
Используйте вычисляемые имена свойств ES6 для идентификации ваших объектов и избегайте путаницы в именах переменных.
Это просто — используйте синтаксис вычисляемых свойств ES6 и заключайте объекты, которые вы хотите регистрировать, в фигурные скобки внутри console.log()
— т. е. используйте console.log({user})
вместо console.log(user)
. Вы обнаружите, что они аккуратно зарегистрированы с именем переменной, установленным в качестве ключа, и значением в качестве самого объекта. Это особенно полезно, когда вы спешите и хотите зарегистрировать несколько объектов в одной команде console.log()
.
Используйте многоуровневые уровни ведения журнала — ошибка, предупреждение, информация
console.log(param)
по умолчанию ведет журнал на уровне INFO
— однако в вашем распоряжении также есть 3 других уровня ведения журнала, которые вы должны использовать — console.debug()
, console.warn()
и console.error()
. Помимо различий в форматировании (обратите внимание на разные цвета?), консоль разработчика браузера также позволяет легко фильтровать журналы на разных уровнях с помощью удобного раскрывающегося списка, чтобы навести порядок в журналах.
При регистрации списков элементов используйте console.table()
Это не требует пояснений и является одной из моих любимых консольных функций — если вам когда-нибудь понадобится зарегистрировать список объектов, попробуйте console.table()
.
Детальное профилирование производительности с помощью console.profile()
и console.time()
Хотите профилировать точный поток пользователей в своем приложении, чтобы найти горячие точки? Запустите console.profile(profileName)
в начале действия и console.profileEnd(profileName)
в конце, чтобы проверить профиль ЦП для потока.
Подсчет помеченных казней с помощью console.count()
Это одна из тех консольных функций, которые я лично не нашел особого применения, но она есть, если вам это нужно. console.count(label)
может помочь вам точно узнать, сколько раз выполняется фрагмент кода, что может быть полезно для поиска и устранения условий гонки и других сценариев.
Резюме
Я очень надеюсь, что эти советы сделают ваш опыт фронтенд-разработки более продуктивным и увлекательным! Очевидно, в этом посте я коснулся только поверхности логирования ниндзюцу, спасибо!