Robot
Складчик
- #1
[learn.javascript.ru] JavaScript/DOM/Интерфейсы для программистов [Дмитрий Рагозин, Владимир Шевчук]
- Ссылка на картинку
Цели курса:
Программа курса:
Основы языка, инструменты для разработки и отладки:
К первому занятию вы посмотрели вводный видеокурс и уже знаете основы JavaScript. Вместе проходим по важным особенностям JavaScript, обращаем внимание на нюансы и особые возможности языка, убеждаемся в том, что понимаем их.
Разбираем функции, замыкания в JavaScript и многое другое.
Знакомимся с инструментами для разработки и отладки JavaScript, которыми будем пользоваться и глубже изучим далее.
Объекты и массивы, основы тестирования:
Объектно-ориентированное программирование:
Глубже изучаем DOM-модель документа и методы работы с ней. Они нужны, чтобы отображать кнопки, меню и другие компоненты, а также динамических их менять.
JavaScript-модули, их особенности по сравнению с "обычными" скриптами. Процесс загрузки страницы, порядок выполнения модулей и скриптов.
События:
Формы, Fetch для POST-запросов:
Создание SPA-приложений, которые работают без перезагрузки страницы.
Ранее мы делали различные компоненты для проекта. Теперь соберём их вместе и подготовим к публикации на "боевом" сервере.
Пожалуй, самым мощным и гибким средством сборки является Webpack.
Вопросы по темам, которые не вошли в основную программу курса.
Фреймворки: React, Angular и другие, куда двигаться дальше.
- Дать глубокое знание языка JavaScript, соответствующее позиции хорошего среднего/продвинутого (middle+) разработчика.
- Научиться делать браузерные интерфейсы.
- Подготовить к освоению фреймворка: React, Vue, Angular или другого, если ваша цель - создавать сложные приложения.
- Опыт на языке с использованием ООП от 1 года (вам должны быть понятны слова "наследование", "рефакторинг" и "хардкод") или пройденный курс JavaScript для новичков.
- Знакомство с HTML/CSS: верстать макеты не понадобится, но основные теги, позиционирование, margin/padding надо знать.
- Интернет 256кб/с или быстрее для видео.
Программа курса:
Основы языка, инструменты для разработки и отладки:
К первому занятию вы посмотрели вводный видеокурс и уже знаете основы JavaScript. Вместе проходим по важным особенностям JavaScript, обращаем внимание на нюансы и особые возможности языка, убеждаемся в том, что понимаем их.
Разбираем функции, замыкания в JavaScript и многое другое.
Знакомимся с инструментами для разработки и отладки JavaScript, которыми будем пользоваться и глубже изучим далее.
Объекты и массивы, основы тестирования:
- Массивы: обзор методов, особенности и нюансы использования.
- Функции с переменным количеством аргументов.
- Объект как коллекция: передача по ссылке, итерация, копирование, флаги свойств.
- Set/Map: область использования, отличия от Object.
- Деструктуризация объектов и массивов.
Объектно-ориентированное программирование:
- Методы объектов, динамический контекст this.
- Потеря контекста, передача контекста в функцию и его привязка.
- Функции-конструкторы.
- Прототипное наследование, свойство prototype.
- Классы, их внутреннее устройство.
- DOM - объектная модель документа, основные методы.
- Введение в компонентную архитектуру веб-страницы.
- Пример создания графического компонента "диаграмма", организация кода.
Глубже изучаем DOM-модель документа и методы работы с ней. Они нужны, чтобы отображать кнопки, меню и другие компоненты, а также динамических их менять.
JavaScript-модули, их особенности по сравнению с "обычными" скриптами. Процесс загрузки страницы, порядок выполнения модулей и скриптов.
События:
- Установка обработчиков событий.
- Свойства событий.
- Погружение и всплытие.
- Приём проектирования "делегирование" для работы с большим количеством элементов, упрощения сложных интерфейсов.
- Приём проектирования "поведение" для добавления функционала при помощи HTML-атрибутов.
- Архитектура, связывание компонентов при помощи своих событий.
- Создание компонента "всплывающая подсказка" и "календарь с выбором диапазона дат" для проекта.
- Событийный цикл: внутреннее устройство браузера, setTimeout(..., 0), макрозадачи.
- Promise, их преимущества перед колбэками.
- Чейнинг (создание цепочек) Promise.
- Промисификация функций.
- Микрозадачи и макрозадачи.
- Async/Await
- Обработка ошибок.
- Fetch API, запросы на сервер (основы).
Формы, Fetch для POST-запросов:
- Создание и отправка форм, динамические формы, валидация.
- DOM-свойства и методы для форм.
- POST-запросы на сервер, кодировка, обмен данными в формате JSON.
- Загрузка изображений.
- TDD/BDD-разработка.
- Виды тестирования: юнит-тестирование, интеграционное и E2E-тестирование.
- Jasmine/Jest API. "Спаи" (spy), "моки" (mock) и "стабы" (stub).
- Инструменты для E2E-тестирования: puppeteer, cypress.
Создание SPA-приложений, которые работают без перезагрузки страницы.
- History API в браузере.
- Динамическая подгрузка модулей.
- Архитектура: роутер для перехода по страницам.
Ранее мы делали различные компоненты для проекта. Теперь соберём их вместе и подготовим к публикации на "боевом" сервере.
Пожалуй, самым мощным и гибким средством сборки является Webpack.
- Конфигурация Webpack, примеры сборки.
- Лоадеры, подключение и сборка CSS.
- Важные плагины: HtmlWebpackPlugin, DefinePlugin, CopyWebpackPlugin и ряд других.
- Полифилы для работы сборки в старых браузерах.
Вопросы по темам, которые не вошли в основную программу курса.
Фреймворки: React, Angular и другие, куда двигаться дальше.
Зарегистрируйтесь
, чтобы посмотреть скрытый авторский контент.