2. Whoami
• Team/Tech lead (Infopulse)
• Організатор BeerJS Zhytomyr, PublicIT,
frontendZt
• Суддя DevChallange 2019
• Розробляю щось у фронтенді
• Розповідаю дивні речі на конференціях
• Люблю слухати дивні речі на конференціях
12. Зберігання файлів через девтул
Збірка проекту з хот релоад
Використання локальних змін
Локальний проект
Гіт проект (з доступом до коду)
Чужий проект без доступу
Локальні зміни (Local overrides)
Навіщо взагалі фіча?
23. Профілірування
Різниця між інструментуванням і семпліруванням
Інструментування
function kharkivJSStart() {
// learn
// drink
// think
}
Записати час та стеки
Записати час та стеки
Зібрати стек
Зібрати стек
Семплірування
Зібрати стек
Зібрати стек
24. Профілірування
В чому ж різниця
Інструментування СемпліруванняVS
• Нерівномірно спотворює
результат
• Завжди включає всі функції
• Містить детальну
інформацію про стек
виклику
• Важкий в реалізації
• Рівномірно спотворює
результат
• Точність обмежена
частотою семплірування
25.
26. Швидкий аналіз найбільш повільних місць коду
ПС: споживання пам’яті завжди відображається на конверсії і доходах
Performance monitor
34. IO’19 step-into & workers
Або тепер я знаю, як вірно працювати з ним
35. Сторінка WorkerDevTools
new Worker('worker.js');
Cповістити токен…
Зупинитись…
Створити новий потік,
Передати в нього токен
Зберегти токен…
Продовжити
Попросити зупинитись,
якщо токен, продовжити
Сповістити про себе
Зупитинись
Розпочати задачу з
токеном, зупинитись
postMessage('pong');
IO’19 step-into & workers
Або тепер я знаю, як вірно працювати з ним
38. NBD – node debug CDT
Підтримує Node > 8, працює на > 10
• Побудований на Chromium
• Працює як окремий застосунок (в планах додати до CDT)
• Підтримує всі можливості CDT
• Має JS and memory профілювальники
• Розпізнає і додає «дитячі»
44. Консоль / термінал
• «Всі, все рівно, дебажать в консолі»
• «Debugger – це добре, але console.log надійніше»
• «Я потім приберу»
• «З ним працює, без нього - ні…»
• «Залиш консоль лог, щоб я знав, де дивитись»