Профессиональная переподготовка с присвоением квалификации, 650 ак.часов
Записаться на курсПаспорт курса
Описание курса
Отзывы выпускников
Аннотация курса
Цель курса веб-программирования: подготовить квалифицированного специалиста для профессиональной работы со средствами разработки Веб-сайтов, владеющего современными технологиями клиентского и серверного программирования, практикой создания интерактивных веб-сайтов, способами использования библиотек и фреймворков для автоматизации разработки Веб-приложений. Веб-разработчик — это востребованная и высокооплачиваемая профессия.
Во время обучения вы сами:
Категория слушателей: практикующие веб-программисты.
Профессиональные стандарты
Курс соответствует:
Предварительные требования
Программа курса
I. Технологии front-end разработки
Структура программы. Файлы. Выполнение программы в разных средах: в браузере и в интерфейсе командной строки (nodejs CLI). Жизненный цикл приложения на JavaScript.
Некоторые базовые инструменты (npm, yarn, turbo, nodemon, eslint). Формат JSON. Структура и назначение файла package.json
Типы данных. Контроль типов данных. Приведение типов. Применение Unicode в JavaScript.
Стандартные и стрелочные функции. Возврат значения функцией. Анонимные функции (лямбды). Модели вызова функции. Передача и привязывание аргументов. Аргументы по умолчанию.
Замыкания и коллбэки. Таймер. Веб-воркеры.
Ветвление, кейсы, циклы с предусловием и постусловием, со счетчиком и без счетчика. Тернарный оператор. Контроль ошибок (try..catch).
Манипулирование элементами по их селекторам (querySelector). Изменение свойств каскадных стилей. Создание элементов и фрагментов DOM (documentFragment).
Слушатели событий. Всплывание событий. Кастомные события. Создание примера приложения с коммуникацией компонентов.
Кросс-доменные запросы. Интерфейс fetch. Считывание и интерпретация данных в формате JSON.
Операции над строками. Дополнение строки до заданной длины. Обращение и конкатенация строк. Иммутабельность строк. Регулярные выражения. Валидация полей формы с помощью регулярных выражений.
Итерация по массиву. Генерация непрерывного массива. Маппинг и свертка. Синхронные коллбэки и предикаты в массивах: сортировка и фильтрация.
Связь с форматом JSON. Сериализация объектов. Массивоподобные объекты. NodeCollection: новый взгляд на старую проблему. Создание объектов с помощью литерала, прототипа и класса. Энумерабельность и итерабельность.
Создание паттернов для фонового изображения веб-страницы. Сходства и различия с манипулированием SVG-элементами.
Использование функциональности сторонних библиотек для создания пользовательского интерфейса и манипулирования данными (на примере jQuery). Библиотеки манипулирования датами (на примере Moment).
Использование Shadow DOM и веб-компонентов для расширения функциональности веб-документа. Шаблонизаторы: императивный и декларативный подход. Использование шаблонизатора на клиентской стороне (на примере Handlebars).
Стандарт ECMAScript. Ecma International, Technical Committee 39 и эволюция предложений (proposals). Преобразование JavaScript-кода с помощью транспилятора babel. Плагины и пресеты. Типизация. Типизированные массивы. Понятие буфера и потока.
Модульность в экосистеме JavaScript/NodeJS. Импорт и экспорт в стиле CommonJS и нативная ES2015-модульность. Модули в Node.js и в браузере. Асинхронная загрузка модулей. Изоморфный JavaScript-код. Сбор проекта с помощью бандлера - на примере Webpack.
Коллбэки и ад коллбэков. Миграция к промисам. Промисификация и асинхронные функции. Синхронное ожидание промисов (async/await). Функции-генераторы. Связь генераторов и итераторов.
Цепочки методов и функциональный подход к манипулированию элементами DOM. Функциональный и императивный стиль в манипулировании массивами: forEach vs for of Лямбды (безымянные функции). Функции высшего порядка. Контекст this: стандартные функции JavaScript и стрелочные функции. Иммутабельность функций. Чистые функции. Немедленно вызываемые функции (IIFE). Паттерны вызова функций и паттерны передачи аргументов (внедрение зависимостей). Рекурсия и безымянная рекурсия. Обход древовидных структур.
Проектирование структуры предметной области. ORM - Object Relational Mapping. Геттеры и сеттеры. Объекты как коллекции свойств и пространства имен. Мутабельность объектов. Встроенные объекты. Проектирование цепочки методов. Прототипы объектов. Функции-фабрики объектов и функции-конструкторы. Классы в современном JavaScript. Конструкторы. Реализация наследования. Обращение к классу-родителю с помощью super.
Рефлексия. Объект Reflect. Создание прокси и ловушек. Символы. Создание итератора с помощью символа Symbol.iterator
Подготовка наборов кейсов. Модульное тестирование и интеграционное тестирование. Страничное, межстраничное, логическое тестирование. Тестирование клиентского сценария. Тестирование событий, возникающих в интерактивных элементах управления. Асинхронное и промисифицированное тестирование. Тестирование с помощью автоматизации управления браузером на примере Chromium / Puppeteer.
Современная экосистема фреймворков JavaScript.
Язык JSX. Байндинг и реактивность. Состояние. Принципы управления компонентами и их событиями. Жизненный цикл компонентов.
Встроенный шаблонизатор и система компонентов.
Разработка декларативных интерфейсов.
II. Технологии back-end разработки
Протокол HTTP. Методы (глаголы): GET, POST, DELETE, PUT. Коды ответов веб-сервера. Эмуляция работы браузера с помощью клиента telnet. Основные приемы работы с curl и приложением Postman.
Объекты Request и Response. Создание простого веб-сервера. Отдача статического контента, MIME-типы. Выдача HTTP-заголовков. CORS.
Объект app. Создание простого веб-приложения. Основы серверной маршрутизации. Создание микросервиса.
Использование движков шаблонизации, связанных с Express (на примере Pug).
Связь с буфером. Операции с файлами, реализуемые на основе потоков. Пайпинг потоков. Веб-сокеты. Пример создания приложения (чата) на веб-сокетах.
Развертывание сервера с Mongo и подключение к нему. Пользователи и их права. Импорт и экспорт данных.
Модель и ее связь со схемой и коллекцией документов. Проектирование структуры приложения на базе паттерна MVC.
Механизмы сессий в Express. Технология PassportJS и внешние стратегии аутентификации.
Обслуживание маршрутов с помощью контроллеров. Управление маршрутизаторами.
Клиентская маршрутизация. Создание интерфейса одностраничного приложения (SPA). Серверный рендеринг: React SSR. Сборка проекта с помощью Webpack на стороне сервера.
Разработка Node-приложений с помощью альтернативных серверных фреймворков (на примере Koa). Управление серверным приложением. Менеджер процессов.
Структура программы. Файлы. Выполнение программы в разных средах: в связке с веб-сервером и в интерфейсе командной строки (PHP CLI). Жизненный цикл приложения на PHP.
Развертывание связки PHP-FPM + NGINX на виртуальном хостинге и в докер-контейнере.
Переменные, типы данных, функции, строки, массивы, ассоциативные массивы. Суперглобальные массивы. Стандартные библиотеки.
Генерация изображений. Работа с файлами и потоками.
Менеджер зависимостей composer и автозагрузка классов. Реализация наследования. Стандарты кодирования PSR.
Развертывание сервера с MySQL и подключение к нему. Пользователи и их права. Импорт и экспорт данных. Использование PDO для взаимодействия PHP и MySQL.
Хранение данных сессии. Создание и уничтожение сессии.
Обзор популярных MVC-фреймворков (на примере Yii и Laravel).
Преподаватели курса