Профессиональный онлайн?курс JavaScript, уровень 2. 18 ноября 2019 - 29 января 2020 [HTML ACADEMY]

Уровень 2. 18 ноября 2019 - 29 января 2020
Программа курса
Неделя 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.
Практика
  • Познакомимся с практиками, позволяющими обеспечить работоспособность приложения, в случае если доступ к сети пропал.