holyjs HolyJS 2018 Мск (24.11.2018)

Асинхронный ноль

img

Асинхронность: хуки (async_hooks), Continuation (or Thread) Local Storage, трассировка, длительность, статистика, аналитика и обработка ошибок.

Комментарий Программного комитета:

Виктор поддерживает немалую часть огромного бэкенда на Node.js в связке с MongoDB и не понаслышке знает про непростые кейсы использования Node.js. Он расскажет, как работать с этими кейсами в условиях продакшна с наименьшим количеством боли.

Цель доклада: по мере сил и возможностей объяснить, почему синхронность JavaScript является благом.

Повторим основы Event Loop в Node.js. Углубимся в примеры использования async_hooks. Проясним разницу между семплированием и трекингом. Рассмотрим базовые и расширенные примеры использования: long stack trace, continuation local storage, event marks, async events pub~sub, simultaneous calculations и т. п. В конце концов отловим requestId в uncaughtException с полной выкладкой и поговорим об ограничениях всех этих творческих порывов.

Попутно также проясним, что лежит за пределами асинхронных операций: нюансы отладки, асинхронность console.log, чем был хорош window.alert и синхронный HTTP request и что плохого в непонимании синхронности.