Курс предназначен для тех, кто прошёл «Профессиональный JavaScript, уровень 1», или для разработчиков, желающих поднять свои навыки. После прохождения курса вы будете уверенно создавать современные веб-приложения, а также сможете попробовать себя в качестве наставника на наших курсах.
Раздел 1
ECMAScript
Рассмотрим схему работы на интенсиве и узнаем, какие инструменты нам понадобятся. Познакомимся с последними версиями стандартом ECMAScript, разберём какие проблемы он решает и чем отличается от ECMAScript 5.
- Новые возможности ECMAScript.
- Область видимости.
- Операторы let и const.
- Строки-шаблоны.
- Стрелочные функции.
- Параметры функций по умолчанию.
- Оператор spread и rest.
- Деструктуризация.
Раздел 2
Модули и инфраструктура проектов
Познакомимся с понятием модульности и рассмотрим, как устроены модули в последних версиях стандарта ECMAScript. Разберёмся со сборщиками модулей: зачем они нужны, как они работают и как их подключить в проект. А так же узнаем, что такое npm-пакеты. Научимся их устанавливать и управлять ими.
- Как работают модули в ES20xx.
- Циклические зависимости.
- Структура JavaScript-проекта
- node.js, файл package.json, package-lock.json.
- Управление проектом, npm.
- npm-сценарии.
- Запуск установленных исполняемых модулей.
- Обновление версий пакетов.
- Установка зависимостей.
- Сборка приложения при помощи webpack.
- Карты кода (source map).
- Travis.
Раздел 3
Структуры данных
Узнаем, зачем нужны структуры данных frontend-разработчику и как их применять в своих проектах.
- Классические структуры данных.
- Структуры данных ES2015: Map, Set, WeakMap, WeakSet.
- Работа с массивами JS как со списками .
Раздел 4
Введение в ООП
Познакомимся с объектами в JavaScript. Научимся создавать, копировать и применять объекты для решения практических задач. Поговорим про типизацию и разберёмся с магическим контекстом.
Объекты JavaScript.
Функции и объекты.
- Способы создания объектов.
- Свойства и методы.
- Динамические имена свойств.
- Геттеры и сеттеры.
- Копирование объектов.
- Конфигурирование объектов.
- Proxy.
Иммутабельность.
Контекст.
- Контекст.
- Потеря и привязка контекста (apply, bind, call).
- Контекст стрелочных функций.
Компонентный подход.
- Объектно-ориентированное программирование.
- Какие проблемы решает.
- Особенности ООП в JavaScript.
- Классы, типы в JavaScript.
- Инкапсуляция.
- Интерфейсы.
Раздел 5
Наследование и полиморфизм
Продолжаем знакомиться с ООП в JavaScript. Разберем полиморфизм и наследование. Попрактикуемся в написании компонент многоразового использования.
ООП.
- Полиморфизм.
- Наследование и цепочка прототипов.
- Практика решения задачи.
- Связывание компонент.
Раздел 6
Датабиндинг — связывание данных
На этом этапе мы установим связь между компонентом и структурой данных: обновление данных при изменении состояния компонент.
Раздел 7
Связывание данных. Продолжение
А затем установим обратную связь: обновление компонентов при изменении данных.
Раздел 8
Работа с сетью
Узнаем как работает протокол HTTP, что такое REST и REST API. Разберёмся с объектом Promise и узнаем, как он помогает отправлять и обрабатывать HTTP-запросы. Разберём, как проектировать интерфейсы, в которых есть асинхронный код так, чтобы пользователю было удобно.
- Протокол HTTP.
- REST.
- Fetch API.
Промисы
- Функции обратного вызова (callback).
- Ад из функций обратного вызова, и как его избежать.
- Promise.
Раздел 9
Offline
Узнаем, есть ли жизнь без интернета.
- Cache.
- Local Storage.
- Web Worker.
- Service Worker.
Раздел 10
Финал
Подводим итоги интенсива. Что делать дальше.