Описание
Программа курса
Неделя 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.
Практика
- Настройка инфраструктуры для работы на интенсиве.
- Подключение в сборку загрузчика модулей.
- Разделение проекта на модули.
Неделя 2
Раздел 3
Структуры данных
Узнаем, зачем нужны структуры данных frontend-разработчику и как их применять в своих проектах.
- Классические структуры данных.
- Структуры данных ES2015: Map, Set, WeakMap, WeakSet.
- Работа с массивами JS как со списками .
Практика
- Пишем клиент-серверное приложение без сервера.
Раздел 4
Введение в ООП
Познакомимся с объектами в JavaScript. Научимся создавать, копировать и применять объекты для решения практических задач. Поговорим про типизацию и разберёмся с магическим контекстом.
Объекты JavaScript.
- Функции и объекты.
- Способы создания объектов.
- Свойства и методы.
- Динамические имена свойств.
- Геттеры и сеттеры.
- Копирование объектов.
- Конфигурирование объектов.
- Proxy.
Иммутабельность.
Контекст.
- Контекст.
- Потеря и привязка контекста (apply, bind, call).
- Контекст стрелочных функций.
Компонентный подход.
- Объектно-ориентированное программирование.
- Какие проблемы решает.
- Особенности ООП в JavaScript.
- Классы, типы в JavaScript.
- Инкапсуляция.
- Интерфейсы.
Практика
- Обновление кода с учётом новых знаний об объектах.
- Применение объектно-ориентированного подхода.
Неделя 3
Раздел 5
Наследование и полиморфизм
Продолжаем знакомиться с ООП в JavaScript. Разберем полиморфизм и наследование. Попрактикуемся в написании компонент многоразового использования.
ООП.
- Полиморфизм.
- Наследование и цепочка прототипов.
- Практика решения задачи.
Связывание компонент.
Практика
- Углубление в ООП. Применение на практике инкапсуляции, наследования и полиморфизма.
- Рефакторинг модулей.
Раздел 6
Датабиндинг — связывание данных
На этом этапе мы установим связь между компонентом и структурой данных: обновление данных при изменении состояния компонент.
Практика
- Установим одностороннее связывание данных — от компонента к данным.
- Познакомимся с библиотеками lodash, chart.js.
Неделя 4
Раздел 7
Связывание данных. Продолжение
А затем установим обратную связь: обновление компонентов при изменении данных.
Практика
- Свяжем данные в обратную сторону — от данных к компонентам.
- Применим двустороннее связывание данных.
Неделя 5
Раздел 8
Работа с сетью
Узнаем как работает протокол HTTP, что такое REST и REST API. Разберёмся с объектом Promise и узнаем, как он помогает отправлять и обрабатывать HTTP-запросы. Разберём, как проектировать интерфейсы, в которых есть асинхронный код так, чтобы пользователю было удобно.
Протокол HTTP.
REST.
Fetch API.
Промисы.
- Функции обратного вызова (callback).
- Ад из функций обратного вызова, и как его избежать.
- Promise.
Практика
- Получение данных для отрисовки приложения с внешнего сервера.
- Отправка данных на внешний сервер.
Раздел 9
Offline
Узнаем, есть ли жизнь без интернета.
- Cache.
- Local Storage.
- Web Worker.
- Service Worker.
Практика
- Познакомимся с практиками, позволяющими обеспечить работоспособность приложения, в случае если доступ к сети пропал.
Отзывы
Отзывов пока нет.