SlideShare a Scribd company logo
1 of 56
Chrome Dev Tools: Debug me!
Whoami
• Team/Tech lead (Infopulse)
• Організатор BeerJS Zhytomyr, PublicIT,
frontendZt
• Суддя DevChallange 2019
• Розробляю щось у фронтенді
• Розповідаю дивні речі на конференціях
• Люблю слухати дивні речі на конференціях
Chrome DevTools – 12!
6 вересня 2008
• Firebug
• Webkit Web Inspector
• «Inspect element» епоха
• Мобільна епоха. Створено «devtools-protocol»
• Performance епоха
• NodeJS епоха
• WebAssembly епоха ?
Перехід на новий тул
Командне меню
Cmd + Shift + P / Ctrl + Shift + P
Темна тема – це круто!
Переходь на темну сторону, в нас є печиво
Сніпети
Примітивна можливість дебагу
Сніпети
Використовуйте для речей, які необхідно виконувати на різних ресурсах
Inspect tooltip
Редагування, а також відключення тултіпу можливо
Clear site data
Зберігання файлів через девтул
Збірка проекту з хот релоад
Використання локальних змін
Локальний проект
Гіт проект (з доступом до коду)
Чужий проект без доступу
Локальні зміни (Local overrides)
Навіщо взагалі фіча?
Локальні зміни (Local overrides)
Capture screenshot
Lighthouse 4.0
Прелоад шрифтів за допомогою локальних змін
Lighthouse 4.0
Reporting observer
Девтул допомагає відстежувати старі АПІ
Page Lifecycle API
Маніпулюй роботою браузера
Page Lifecycle API
Профілірування
Різниця між інструментуванням і семпліруванням
Інструментування
function kharkivJSStart() {
// learn
// drink
// think
}
Записати час та стеки
Записати час та стеки
Зібрати стек
Зібрати стек
Семплірування
Зібрати стек
Зібрати стек
Профілірування
В чому ж різниця
Інструментування СемпліруванняVS
• Нерівномірно спотворює
результат
• Завжди включає всі функції
• Містить детальну
інформацію про стек
виклику
• Важкий в реалізації
• Рівномірно спотворює
результат
• Точність обмежена
частотою семплірування
Швидкий аналіз найбільш повільних місць коду
ПС: споживання пам’яті завжди відображається на конверсії і доходах
Performance monitor
Coverage
Рахуй кількість невикористаного коду
Coverage
Puppeteer + coverage API
Export to JSON
Network
Блокування запитів
Network
Пошук по будь-якому хеадеру, а також знаходження залежностей
Network
Service worker filters
Shareable Network
Експортуйте ваші данні для тестування без проблем
Rendering
Перевіряй зони і FPS
IO’19 step-into & workers
Або тепер я знаю, як вірно працювати з ним
Сторінка WorkerDevTools
new Worker('worker.js');
Cповістити токен…
Зупинитись…
Створити новий потік,
Передати в нього токен
Зберегти токен…
Продовжити
Попросити зупинитись,
якщо токен, продовжити
Сповістити про себе
Зупитинись
Розпочати задачу з
токеном, зупинитись
postMessage('pong');
IO’19 step-into & workers
Або тепер я знаю, як вірно працювати з ним
IO’19 step-int
NDB
Що це?
NBD – node debug CDT
Підтримує Node > 8, працює на > 10
• Побудований на Chromium
• Працює як окремий застосунок (в планах додати до CDT)
• Підтримує всі можливості CDT
• Має JS and memory профілювальники
• Розпізнає і додає «дитячі»
Browse Remote API
Area screenshoot
Яку кількість разів Ви закривали браузер
при вічному циклі під час дебагу?
Infinite loading
logpoint
Консоль / термінал
• «Всі, все рівно, дебажать в консолі»
• «Debugger – це добре, але console.log надійніше»
• «Я потім приберу»
• «З ним працює, без нього - ні…»
• «Залиш консоль лог, щоб я знав, де дивитись»
Стандартні повідомлення
Eager Evaluation & highlight DOM
Особливість: функції та вирази не повинні містити побічних дій
$
Що це?
$0 - $4 – доступ до останніх п’яти DOM елементів
Evaluate Expressions
Evaluate Expressions
Вибірка та інспектування в консолі
getEventListeners, monitorEvents, monitor, keys.
Робота з подіями
Копіювання в буфер
Лише JSON-подібна структура може бути збережена
debug
Пошук стороннього legacy
Швидка можливість отримання
всіх екземплярів класу.
Особливість: клас має бути
доступний з консолі.
queryObjects
Посилання
• F12
• F12 -> What’s new
• https://developers.google.com/web/tools/chrome-
devtools/
https://developers.google.com/web/tools/lighthouse/
• https://github.com/ChromeDevTools/awesome-chrome-devtools
https://flaviocopes.com/chrome-devtools-tips/
https://github.com/bahmutov/code-snippets
https://umaar.com/dev-tips/
?
Запитання

More Related Content

Similar to Stfalcon QA Meetup 31.01.2020

Як прокачати трьох студентів за п’ять тижнів
Як прокачати трьох студентів за п’ять тижнівЯк прокачати трьох студентів за п’ять тижнів
Як прокачати трьох студентів за п’ять тижнівStfalcon Meetups
 
Як прокачати трьох студентів за п’ять тижнів
Як прокачати трьох студентів за п’ять тижнівЯк прокачати трьох студентів за п’ять тижнів
Як прокачати трьох студентів за п’ять тижнівArtem Henvald
 
"Rethinking Continuous Delivery", Andrii Nasinnyk
"Rethinking Continuous Delivery",  Andrii Nasinnyk"Rethinking Continuous Delivery",  Andrii Nasinnyk
"Rethinking Continuous Delivery", Andrii NasinnykFwdays
 
DrupalTour. Khmelnytskyi — Ember (Timur Bolotyuh, stfalcon.com)
DrupalTour. Khmelnytskyi — Ember (Timur Bolotyuh, stfalcon.com)DrupalTour. Khmelnytskyi — Ember (Timur Bolotyuh, stfalcon.com)
DrupalTour. Khmelnytskyi — Ember (Timur Bolotyuh, stfalcon.com)Drupaltour
 
МИХАЙЛО БОДНАРЧУК «Як перестати боятись та полюбити автотести на JavaScript» ...
МИХАЙЛО БОДНАРЧУК «Як перестати боятись та полюбити автотести на JavaScript» ...МИХАЙЛО БОДНАРЧУК «Як перестати боятись та полюбити автотести на JavaScript» ...
МИХАЙЛО БОДНАРЧУК «Як перестати боятись та полюбити автотести на JavaScript» ...GoQA
 
"Incremental rollouts and rollbacks with business metrics control at every st...
"Incremental rollouts and rollbacks with business metrics control at every st..."Incremental rollouts and rollbacks with business metrics control at every st...
"Incremental rollouts and rollbacks with business metrics control at every st...Fwdays
 
Continuous Integration - Анатолій Охотніков
Continuous Integration - Анатолій ОхотніковContinuous Integration - Анатолій Охотніков
Continuous Integration - Анатолій ОхотніковIgor Bronovskyy
 
ITEvent: Continuous Integration (ukr)
ITEvent: Continuous Integration (ukr)ITEvent: Continuous Integration (ukr)
ITEvent: Continuous Integration (ukr)Anatoliy Okhotnikov
 
"Elements of functional programming in C# based on Language-Ext library as an...
"Elements of functional programming in C# based on Language-Ext library as an..."Elements of functional programming in C# based on Language-Ext library as an...
"Elements of functional programming in C# based on Language-Ext library as an...Fwdays
 
iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)Anatoliy Okhotnikov
 
"Laravel Tips & Tricks - 7 Steps to Dramatically Improve Performance", Yehor ...
"Laravel Tips & Tricks - 7 Steps to Dramatically Improve Performance", Yehor ..."Laravel Tips & Tricks - 7 Steps to Dramatically Improve Performance", Yehor ...
"Laravel Tips & Tricks - 7 Steps to Dramatically Improve Performance", Yehor ...Fwdays
 
Andrii Novak "Unity vs UE4 for Indie programmers."
Andrii Novak "Unity vs UE4 for Indie programmers."Andrii Novak "Unity vs UE4 for Indie programmers."
Andrii Novak "Unity vs UE4 for Indie programmers."Lviv Startup Club
 
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMIЗагальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMIПупена Александр
 
Continious integration jet brains teamcity. Віталій Галушка
Continious integration jet brains teamcity. Віталій ГалушкаContinious integration jet brains teamcity. Віталій Галушка
Continious integration jet brains teamcity. Віталій ГалушкаHRdepartment
 
Android: Інструменти програміста
Android: Інструменти програмістаAndroid: Інструменти програміста
Android: Інструменти програмістаAnatoliy Odukha
 
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)Exoft LLC
 

Similar to Stfalcon QA Meetup 31.01.2020 (20)

Як прокачати трьох студентів за п’ять тижнів
Як прокачати трьох студентів за п’ять тижнівЯк прокачати трьох студентів за п’ять тижнів
Як прокачати трьох студентів за п’ять тижнів
 
Як прокачати трьох студентів за п’ять тижнів
Як прокачати трьох студентів за п’ять тижнівЯк прокачати трьох студентів за п’ять тижнів
Як прокачати трьох студентів за п’ять тижнів
 
IT Rally - ISIS
IT Rally - ISISIT Rally - ISIS
IT Rally - ISIS
 
"Rethinking Continuous Delivery", Andrii Nasinnyk
"Rethinking Continuous Delivery",  Andrii Nasinnyk"Rethinking Continuous Delivery",  Andrii Nasinnyk
"Rethinking Continuous Delivery", Andrii Nasinnyk
 
DrupalTour. Khmelnytskyi — Ember (Timur Bolotyuh, stfalcon.com)
DrupalTour. Khmelnytskyi — Ember (Timur Bolotyuh, stfalcon.com)DrupalTour. Khmelnytskyi — Ember (Timur Bolotyuh, stfalcon.com)
DrupalTour. Khmelnytskyi — Ember (Timur Bolotyuh, stfalcon.com)
 
Ember.js. Init...
Ember.js. Init...Ember.js. Init...
Ember.js. Init...
 
МИХАЙЛО БОДНАРЧУК «Як перестати боятись та полюбити автотести на JavaScript» ...
МИХАЙЛО БОДНАРЧУК «Як перестати боятись та полюбити автотести на JavaScript» ...МИХАЙЛО БОДНАРЧУК «Як перестати боятись та полюбити автотести на JavaScript» ...
МИХАЙЛО БОДНАРЧУК «Як перестати боятись та полюбити автотести на JavaScript» ...
 
Jenkins CI (ukr)
Jenkins CI (ukr)Jenkins CI (ukr)
Jenkins CI (ukr)
 
"Incremental rollouts and rollbacks with business metrics control at every st...
"Incremental rollouts and rollbacks with business metrics control at every st..."Incremental rollouts and rollbacks with business metrics control at every st...
"Incremental rollouts and rollbacks with business metrics control at every st...
 
Continuous Integration - Анатолій Охотніков
Continuous Integration - Анатолій ОхотніковContinuous Integration - Анатолій Охотніков
Continuous Integration - Анатолій Охотніков
 
ITEvent: Continuous Integration (ukr)
ITEvent: Continuous Integration (ukr)ITEvent: Continuous Integration (ukr)
ITEvent: Continuous Integration (ukr)
 
"Elements of functional programming in C# based on Language-Ext library as an...
"Elements of functional programming in C# based on Language-Ext library as an..."Elements of functional programming in C# based on Language-Ext library as an...
"Elements of functional programming in C# based on Language-Ext library as an...
 
iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)
 
"Laravel Tips & Tricks - 7 Steps to Dramatically Improve Performance", Yehor ...
"Laravel Tips & Tricks - 7 Steps to Dramatically Improve Performance", Yehor ..."Laravel Tips & Tricks - 7 Steps to Dramatically Improve Performance", Yehor ...
"Laravel Tips & Tricks - 7 Steps to Dramatically Improve Performance", Yehor ...
 
Andrii Novak "Unity vs UE4 for Indie programmers."
Andrii Novak "Unity vs UE4 for Indie programmers."Andrii Novak "Unity vs UE4 for Indie programmers."
Andrii Novak "Unity vs UE4 for Indie programmers."
 
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMIЗагальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI
 
Continious integration jet brains teamcity. Віталій Галушка
Continious integration jet brains teamcity. Віталій ГалушкаContinious integration jet brains teamcity. Віталій Галушка
Continious integration jet brains teamcity. Віталій Галушка
 
Android: Інструменти програміста
Android: Інструменти програмістаAndroid: Інструменти програміста
Android: Інструменти програміста
 
Practices
PracticesPractices
Practices
 
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
 

More from Stfalcon Meetups

Conversion centered design 3
Conversion centered design 3Conversion centered design 3
Conversion centered design 3Stfalcon Meetups
 
Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020Stfalcon Meetups
 
Design of the_future_30_05_2019
Design of the_future_30_05_2019Design of the_future_30_05_2019
Design of the_future_30_05_2019Stfalcon Meetups
 
Global sales - a few insights
Global sales - a few insightsGlobal sales - a few insights
Global sales - a few insightsStfalcon Meetups
 
How to build your own startup
How to build your own startupHow to build your own startup
How to build your own startupStfalcon Meetups
 
Первая и последняя встреча с клиентом
Первая и последняя встреча с клиентом Первая и последняя встреча с клиентом
Первая и последняя встреча с клиентом Stfalcon Meetups
 
Парнерство нидерланды
Парнерство нидерландыПарнерство нидерланды
Парнерство нидерландыStfalcon Meetups
 
Риси гарного менеджера
Риси гарного менеджераРиси гарного менеджера
Риси гарного менеджераStfalcon Meetups
 
Между заказчиком и разработчиком
Между заказчиком и разработчикомМежду заказчиком и разработчиком
Между заказчиком и разработчикомStfalcon Meetups
 
майстер-клас “Управління ризиками”
майстер-клас “Управління ризиками”майстер-клас “Управління ризиками”
майстер-клас “Управління ризиками”Stfalcon Meetups
 
Kubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDKubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDStfalcon Meetups
 
Як ефективно працювати в мережі LinkedIn
Як ефективно працювати в мережі LinkedInЯк ефективно працювати в мережі LinkedIn
Як ефективно працювати в мережі LinkedInStfalcon Meetups
 

More from Stfalcon Meetups (20)

Conversion centered design 3
Conversion centered design 3Conversion centered design 3
Conversion centered design 3
 
Discovery phase
Discovery phaseDiscovery phase
Discovery phase
 
Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020
 
Stfalcon PM Meetup 21.11
Stfalcon PM Meetup 21.11Stfalcon PM Meetup 21.11
Stfalcon PM Meetup 21.11
 
Stfalcon PM Meetup 21.11
Stfalcon PM Meetup 21.11Stfalcon PM Meetup 21.11
Stfalcon PM Meetup 21.11
 
Design of the_future_30_05_2019
Design of the_future_30_05_2019Design of the_future_30_05_2019
Design of the_future_30_05_2019
 
2 5404811386729530203
2 54048113867295302032 5404811386729530203
2 5404811386729530203
 
Team evolution
Team evolutionTeam evolution
Team evolution
 
Mobile&Privacy
Mobile&PrivacyMobile&Privacy
Mobile&Privacy
 
Global sales - a few insights
Global sales - a few insightsGlobal sales - a few insights
Global sales - a few insights
 
How to build your own startup
How to build your own startupHow to build your own startup
How to build your own startup
 
Первая и последняя встреча с клиентом
Первая и последняя встреча с клиентом Первая и последняя встреча с клиентом
Первая и последняя встреча с клиентом
 
Парнерство нидерланды
Парнерство нидерландыПарнерство нидерланды
Парнерство нидерланды
 
Риси гарного менеджера
Риси гарного менеджераРиси гарного менеджера
Риси гарного менеджера
 
Между заказчиком и разработчиком
Между заказчиком и разработчикомМежду заказчиком и разработчиком
Между заказчиком и разработчиком
 
Cv vs resume
Cv vs resumeCv vs resume
Cv vs resume
 
Vue.js
Vue.jsVue.js
Vue.js
 
майстер-клас “Управління ризиками”
майстер-клас “Управління ризиками”майстер-клас “Управління ризиками”
майстер-клас “Управління ризиками”
 
Kubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDKubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CD
 
Як ефективно працювати в мережі LinkedIn
Як ефективно працювати в мережі LinkedInЯк ефективно працювати в мережі LinkedIn
Як ефективно працювати в мережі LinkedIn
 

Stfalcon QA Meetup 31.01.2020