Запись

[learn.javascript.ru] JavaScript/DOM/Интерфейсы для программистов (Дмитрий Рагозин, Владимир Шевчук)

  • Дата начала
Информация
Тип покупки: Оптовая
Цена: 495 РУБ

Организатор: Ля-ля-фа Ля-ля-фа
Статус:
Набор участников
Список участников
Ля-ля-фа
Ля-ля-фа
ТОП организатор
Сообщения
Монеты
0.0
Оплачено
55
Купоны
0
Кешбэк
0
Баллы
0
  • @Skladchiki
  • #1

Складчина: [learn.javascript.ru] JavaScript/DOM/Интерфейсы для программистов (Дмитрий Рагозин, Владимир Шевчук)

Ссылка на картинку
изображение
Цели курса:
  • Дать глубокое знание языка JavaScript, соответствующее позиции хорошего среднего/продвинутого (middle+) разработчика.
  • Научиться делать браузерные интерфейсы.
  • Подготовить к освоению фреймворка: React, Vue, Angular или другого, если ваша цель - создавать сложные приложения.
Предварительные требования:
  • Опыт на языке с использованием ООП от 1 года (вам должны быть понятны слова "наследование", "рефакторинг" и "хардкод") или пройденный курс JavaScript для новичков.
  • Знакомство с HTML/CSS: верстать макеты не понадобится, но основные теги, позиционирование, margin/padding надо знать.
  • Интернет 256кб/с или быстрее для видео.
Опыт требуется не просто так: ряд продвинутых приёмов проектирования имеет смысл изучать, когда программирование само по себе давно знакомо. Кроме того, зная, что у вас уже есть опыт в программировании, мы можем сосредоточиться именно на особенностях JavaScript и, тем самым, успеть больше.


Программа курса:

Основы языка, инструменты для разработки и отладки:


К первому занятию вы посмотрели вводный видеокурс и уже знаете основы JavaScript. Вместе проходим по важным особенностям JavaScript, обращаем внимание на нюансы и особые возможности языка, убеждаемся в том, что понимаем их.
Разбираем функции, замыкания в JavaScript и многое другое.
Знакомимся с инструментами для разработки и отладки JavaScript, которыми будем пользоваться и глубже изучим далее.

Объекты и массивы, основы тестирования:
  • Массивы: обзор методов, особенности и нюансы использования.
  • Функции с переменным количеством аргументов.
  • Объект как коллекция: передача по ссылке, итерация, копирование, флаги свойств.
  • Set/Map: область использования, отличия от Object.
  • Деструктуризация объектов и массивов.
Также мы изучаем, как устроено автоматическое тестирование при помощи Jest. Пока основы, чтобы были понятны тесты, приложенные к домашнему заданию. Позже мы изучим тестирование более глубоко.

Объектно-ориентированное программирование:
  • Методы объектов, динамический контекст this.
  • Потеря контекста, передача контекста в функцию и его привязка.
  • Функции-конструкторы.
  • Прототипное наследование, свойство prototype.
  • Классы, их внутреннее устройство.
Введение в DOM и компонентную архитектуру:
  • DOM - объектная модель документа, основные методы.
  • Введение в компонентную архитектуру веб-страницы.
  • Пример создания графического компонента "диаграмма", организация кода.
DOM-модель в деталях:

Глубже изучаем DOM-модель документа и методы работы с ней. Они нужны, чтобы отображать кнопки, меню и другие компоненты, а также динамических их менять.
JavaScript-модули, их особенности по сравнению с "обычными" скриптами. Процесс загрузки страницы, порядок выполнения модулей и скриптов.

События:
  • Установка обработчиков событий.
  • Свойства событий.
  • Погружение и всплытие.
  • Приём проектирования "делегирование" для работы с большим количеством элементов, упрощения сложных интерфейсов.
  • Приём проектирования "поведение" для добавления функционала при помощи HTML-атрибутов.
  • Архитектура, связывание компонентов при помощи своих событий.
  • Создание компонента "всплывающая подсказка" и "календарь с выбором диапазона дат" для проекта.
Асинхронный код: Promise, async/await, fetch:
  • Событийный цикл: внутреннее устройство браузера, setTimeout(..., 0), макрозадачи.
  • Promise, их преимущества перед колбэками.
  • Чейнинг (создание цепочек) Promise.
  • Промисификация функций.
  • Микрозадачи и макрозадачи.
  • Async/Await
  • Обработка ошибок.
  • Fetch API, запросы на сервер (основы).
Взаимодействие с сервером:

Формы, Fetch для POST-запросов:
  • Создание и отправка форм, динамические формы, валидация.
  • DOM-свойства и методы для форм.
  • POST-запросы на сервер, кодировка, обмен данными в формате JSON.
  • Загрузка изображений.
Тестирование JavaScript-приложений:
  • TDD/BDD-разработка.
  • Виды тестирования: юнит-тестирование, интеграционное и E2E-тестирование.
  • Jasmine/Jest API. "Спаи" (spy), "моки" (mock) и "стабы" (stub).
  • Инструменты для E2E-тестирования: puppeteer, cypress.
Одностраничные веб-приложения, роутинг:

Создание SPA-приложений, которые работают без перезагрузки страницы.
  • History API в браузере.
  • Динамическая подгрузка модулей.
  • Архитектура: роутер для перехода по страницам.
Сборка проекта с помощью Webpack:

Ранее мы делали различные компоненты для проекта. Теперь соберём их вместе и подготовим к публикации на "боевом" сервере.
Пожалуй, самым мощным и гибким средством сборки является Webpack.
  • Конфигурация Webpack, примеры сборки.
  • Лоадеры, подключение и сборка CSS.
  • Важные плагины: HtmlWebpackPlugin, DefinePlugin, CopyWebpackPlugin и ряд других.
  • Полифилы для работы сборки в старых браузерах.
Дополнительные темы, ответы на вопросы:

Вопросы по темам, которые не вошли в основную программу курса.

Фреймворки: React, Angular и другие, куда двигаться дальше.
 
Зарегистрируйтесь , чтобы посмотреть скрытый авторский контент.
Поиск по тегу:
Теги
javascript javascript/dom/интерфейсы для программистов learn.javascript.ru владимир шевчук дмитрий рагозин
Похожие темы

Зарегистрируйте учетную запись или войдите, чтобы обсуждать и скачивать материалы!

Зарегистрироваться

Создайте учетную запись. Это быстро!

Авторизоваться

Вы уже зарегистрированы? Войдите здесь.

Сверху