Описание курса:
В ходе этого курса слушатели смогут лучше понять сложные функции, синтаксические конструкции и внутренние механизмы языка JavaScript. Этот курс будет полезен разработчикам, которые уже имеют опыт использования JavaScript, но хотят полностью реализовать потенциал этого языка и начать использовать менее известные, но его очень интересные и полезные возможности.
Программа курса:
Модуль 1. Подробно об основах JavaScript
• Объект классов
• Дескрипторы объекта
• Методы объекта
• Наследование прототипа
• Символы
• Итераторы
• Генераторы
• Создание итерируемых объектов
• Асинхронные генераторы
Модуль 2. Подробно о типах в JavaScript
• Обзор типов;
• Номер типа;
• Проблемы плавающей точки и округления;
• Тип «Строка»;
• Тип Boolean;
• Конвертация типов;
• Map, Set, WeakMap, WeakSet;
• BigInt;
• ArrayBuffer;
• Типизированные массивы;
• DataViews;
• Blobs;
• FileReader;
• Обработка загруженных файлов.
Модуль 3. Асинхронное программирование
• Асинхронные вызовы;
• Использование в обратных вызовах;
• Класс «Промис»;
• Обработка исключений Promise;
• Методы all(), any(), race(), allSettled();
• Отмена промиса с помощью Promise.race();
• Отмена промиса с помощью AbortController;
• Синтаксис async/await;
• Синтаксис async/await: Обработка исключений;
• Синтаксис async/await: await высокого уровня;
• Синтаксис async/await: Ограничения;
• Архитектура REST;
• Коды состояния HTTP;
• Методы HTTP;
• Отсутствие сохранения состояния и масштабируемость;
• Операции CRUD и сервисы Rest;
• Формат возвращаемых данных: XML, JSON, XHTML;
• Функция Fetch;
• Fetch с возможностью отменить запрос;
• Библиотека Axios для вызовов REST;
• Обработка ошибок в Axios;
• Отмена запросов в Axios;
• Перехватчики в Axios;
• Протокол WebSocket;
• WebSocket в браузере;
• WebSocket на сервере (Node.js);
• Когда использовать WebSocket?
Модуль 4. Workers и параллельное программирование
• Workers;
• Типы worker;
• Worker APIs;
• Регистрирующий worker;
• Примеры использования Worker;
• Сервисные workers;
• Кэш API;
• Регистрирующий Service worker;
• Жизненный цикл Service worker;
• Service worker как прокси сервера;
• Стратегия Cache First (Cache Falling Back to Network);
• Стратегия Network First (Network Falling Back to Cache);
• Стратегия Stale-While-Revalidate;
• Какую стратегию использовать;
• Обновление кэша в стратегии пуш-сообщений;
• Обновление кэша в стратегии фоновой синхронизации.
Модуль 5. Функциональные программирование
• Функции как данные;
• Аргументы функции и массив аргументов;
• Функции как методы;
• Вызов и применение методов;
• Привязка функции к объекту;
• Замыкания;
• Создание инкапсулированного значение через замыкание;
• Функция «Конструктор»;
• Функции массивов: map/filter/reduce;
• Парадигмы программирования;
• Декларативное и императивное программирование;
• Функциональное программирование;
• Высокоупорядоченные функции;
• Чистые функции;
• Преимущества чистых функций;
• Неизменяемость;
• Неизменяемость объектов: Оператор Spread;
• Преимущества неизменяемости;
• Immutable.js;
• Встроенные структуры данных в Immutable.js;
• Монады и функциональная композиция;
• Function pipe();
• Декомпозиция функций;
• Монады для операций SIMD;
• Частичное применение функции;
• Карринг;
• Нулевая безопасность;
• Шаблон проектирования Null Object;
• Монада Maybe;
• Частично определенная функция;
• Правила хорошего кода для написания функций;
• Функциональные шаблоны проектирования;
• Шаблон проектирования MVC с чистыми функциями;
• Шаблон проектирования «наблюдатель» (observer);
• Шаблон проектирования «порождение событий» (event sourcing);
• Шаблон проектирования REDUX;
• REDUX DevTools;
• Преимущества REDUX;
• Шаблоны проектирования в реактивном программировании (RxJS);
• Операторы filter/map/take;
• Операторы MergeMap/ConcatMap/SwitchMap;
• Операторы Window/Buffer;
• Операторы Sample/Throttle/Debounce;
• Преимущества и примеры использования реактивного программирования.
Окончательная цена указывается в договоре на обучение.