Технологии Интернет
Бакалавриат (Системы автоматизированного проектирования)
Преподаватели:
Описание
Цель изучения дисциплины ˗ знакомство с основными принципами и технологиями разработки современных веб-ориентированных приложений.
Общий объем дисциплины составляет 3 зачетные единицы(з.е.), 108 академических часов (81 астрономический час).
План занятий
Модуль 1. Основы веб-разработки на стороне клиента: HTML, CSS, JavaScript, работа с Document Object Model.
- Лекция 1. Введение. История веб-разработки. Языки разметки документов: XML, HTML, XHTML. Протокол сетевого взаимодействия HTTP и WebSocket. Архитектуры веб-приложений: WSDL, SOAP, REST. Основы вёрстки. Язык разметки HTML. Каскадные таблицы стилей – CSS. Блочная модель документа. Модели документа: блочная, Flexible Box Layout Module (flexbox), Grid Layout. Препроцессоры CSS: Less, Sass/Scss.
- Лекция 2. Язык программирования JavaScript: типы данных, функции, объекты, массивы. Замыкания и контекст исполнения функции – this, манипуляции с контекстом. Объектно-ориентированное программирование в JS: функциональный и прототипный стили. Работа с Document Object Model (DOM) в JS: навигация, поиск элементов, свойства узлов, добавление и удаление узлов в DOM. События в JavaScript, eventloop. Формат JSON.
Модуль 2. Построение веб-интерфейсов с использованием фреймворков (React), инструменты клиент-серверного взаимодействия, инструменты веб-разработчика
- Лекция 1. Организация модулей в языке JavaScript. Загрузчики модулей и сборщики, сборщик модулей Webpack. Асинхронные и синхронные запросов к серверу в JavaScript – Asynchronous JavaScript And XML (AJAX). Объект XmlHttpRequest, свойства и методы XHR, события и их обработчики. Организация непрерывного соединения с сервером по протоколу WebSocket. JavaScript-класс для асинхронных операций Promise, async/await-операции в JavaScript. WHATWG Fetch.
- Лекция 2. Архитектура веб-приложений MVC: Model-View-Controller. Фреймворки для построения веб-приложений: Angular, Vue.js, React. Потоки данных в веб-приложениях, подходы к управлению потоками данных, архитектура Flux. Библиотека Redux на базе Flux: Статические анализаторы кода: JSLint, ESLint, JSHint. Надстройки над JavaScript с явной проверкой типов: Flow, TypeScript.
- Лекция 3. Веб-серверы: основные задачи, цикл обработки запросов. Основные виды серверов: Apache, Nginx. Маршрутизация запросов на стороне сервера на примере Nginx. Среда исполнения кода на JS за пределами браузера: Node.js. Построение сервера на базе Node.js. Пакетные менеджеры npm и yarn.