Описание
В ходе этого тренинга слушатели смогут лучше понять сложные функции, синтаксические конструкции и внутренние механизмы языка JavaScript. Этот курс будет полезен разработчикам, которые уже имеют опыт использования JavaScript, но хотят полностью реализовать потенциал этого языка и начать использовать менее известные, но его очень интересные и полезные возможности.
удостоверение о повышении квалификации государственного образца
Цели
- научатся лучше понимать язык JavaScript;
- подробно изучат типы JavaScript и их конвертацию;
- узнают об асинхронном программировании;
- научатся использовать REST сервисы и вебсокеты для взаимодействия с сервером;
- научатся использовать workers и параллельное программирование;
- смогут использовать workers для кэширования;
- научатся использовать функциональное и реактивное программирование.
Целевая аудитория
Разбираемые темы
-
1. Подробно об основах JavaScript (6 ч. - теория, 2 ч. - практика)
- Объект классов;
- Дескрипторы объекта;
- Методы объекта;
- Наследование прототипа;
- Символы;
- Итераторы;
- Генераторы;
- Создание итерируемых объектов;
- Асинхронные генераторы.
-
2. Подробно о типах в JavaScript (6 ч. - теория, 2 ч. - практика)
- Обзор типов;
- Номер типа;
- Проблемы плавающей точки и округления;
- Тип «Строка»;
- Тип Boolean;
- Конвертация типов;
- Map, Set, WeakMap, WeakSet;
- BigInt;
- ArrayBuffer;
- Типизированные массивы;
- DataViews;
- Blobs;
- FileReader;
- Обработка загруженных файлов.
-
3. Асинхронное программирование (7 ч. - теория, 2 ч. - практика)
- Асинхронные вызовы;
- Использование в обратных вызовах;
- Класс «Промис»;
- Обработка исключений 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 и параллельное программирование (4 ч. - теория, 2 ч. - практика)
- 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. Функциональные программирование (9 ч. - теория)
- Функции как данные;
- Аргументы функции и массив аргументов;
- Функции как методы;
- Вызов и применение методов;
- Привязка функции к объекту;
- Замыкания;
- Создание инкапсулированного значение через замыкание;
- Функция «Конструктор»;
- Функции массивов: 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;
- Преимущества и примеры использования реактивного программирования.
Александр – эксперт с практическим опытом более 11 лет. За свою карьеру он успешно реализовал проекты в ведущих российских и мировых IT-компаниях.
О проектах:
В рамках проектов Александр занимался разработкой клиентских и серверных приложений (а основе облачных технологий Azure и на базе SalesForce CRM), разработкой архитектурных IT-систем, настройкой рабочих и IT процессов, анализом и оптимизацией проектов по сложности и стоимости.
Также Александр занимался разработка IT-стратегий для клиентов и утверждением архитектурных стандартов для приложений, участвовал в разработке бизнес-архитектуры, взаимодействовал с партнерами по вопросам заключения и исполнения договоров и т. д.
Курсы, сертификаты, членство в профессиональных организациях:
-
ICAgile Certified Professional
-
MongoDB M220 JavaScript
-
MongoDB M220 Java