Профессиональный онлайн‑курс JavaScript, уровень 2. 18 ноября 2019 — 29 января 2020 [НТМL ACADEMY]

185

Уровень 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.

Практика

  • Познакомимся с практиками, позволяющими обеспечить работоспособность приложения, в случае если доступ к сети пропал.