Открытый вебинар «Обзор возможностей SvelteJS» 05.12.2019 в 20:00 | OTUS >
🔥 Скидка 10% на Подписки Standard и Pro
Составьте план обучения под свои цели и начните экономить с подпиской на курсы
Подробнее
+7 499 938-92-02
Проходил 5 декабря 2019 года в 20:00

Открытый вебинар
Обзор возможностей SvelteJS

Открытый вебинар онлайн

Фреймворк Svelte вызывает большое внимание в сообществе из-за своего революционного подхода и невероятной скорости работы.
На этом уроке мы:
- разберемся как писать приложения на Svelte;
- ответим на вопрос: почему Svelte даёт выигрыш в скорости и в размере бандла?
- посмотрим на экосистему и решения традиционных задач веб-разработки.
Преподаватель
Михаил Кузнецов

Запись

О курсе

JavaScript Developer. Professional
135 000 ₽
4 месяца
Начало 31 октября

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

Для кого этот курс?

Курс подойдет разработчикам с опытом программирования на JS, которые знакомы с основами верстки на HTML и CSS. Знания помогут …

Программа курса
Модуль 1
Продвинутые основы JavaScript и TypeScript
Модуль 2
Инфраструктура фронтенда и базовые подходы
Модуль 3
React и экосистема
Модуль 4
Vue и экосистема
Модуль 5
Архитектура и SSR
Модуль 6
Backend, серверные технологии и контейнеризация
Модуль 7
Проектная работа
Продвинутые основы JavaScript и TypeScript
Погружаемся в продвинутые концепции JS: объектно-ориентированное программирование и функциональные подходы. Осваиваем TypeScript – типизацию, интерфейсы, настройку окружения.
Введение в курс: знакомство с программой, командой курса
познакомиться с преподавателем и с программой курса;
вспомнить основы JS.
31 октября, 20:00 — 21:30
Лектор: Алексей Кадочников
ООП в JavaScript
познакомиться с основами объектно-ориентированного программирования в JavaScript.
7 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Глубокое сравнение объектов (deepEqual). Реализовать **функцию глубокого сравнения объектов deepEqual** с использованием принципов ООП (классы и прототипы). Функция должна корректно сравнивать любые вложенные объекты, массивы, примитивы, а также корректно обрабатывать случаи с циклическими ссылками.




Задачи:
1. Создать класс или набор классов, реализующих логику глубокого сравнения объектов.
2. Использовать наследование и/или прототипы для расширения функциональности при необходимости.
3. Покрыть функцию тестами (минимум 5 тестов на разные случаи: примитивы, массивы, вложенные объекты, циклические ссылки, сравнение разных типов).
Основы функциональной разработки
освоить базовые концепции функционального программирования в JavaScript.
10 ноября, 20:00 — 21:30
Введение в TypeScript: базовые типы, интерфейсы, функции
изучить основы типизации в TypeScript;
освоить типы, интерфейсы и функции.
14 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Глубокое сравнение объектов (deepEqual) на TypeScript. Переписать (или дополнить) функцию глубокого сравнения объектов deepEqual, реализованную ранее на JavaScript, **с использованием TypeScript.** Необходимо добавить строгую типизацию, использовать интерфейсы для описания структур данных и аннотации типов для всех аргументов и возвращаемых значений.



Задачи:
1. Переписать функцию deepEqual на TypeScript, добавить аннотации типов для всех параметров и возвращаемых значений.
2. Использовать интерфейсы или типы для описания структур сравниваемых объектов.
3. Покрыть функцию тестами (минимум 5 тестов на разные случаи: примитивы, массивы, вложенные объекты, циклические ссылки, сравнение разных типов).
4. Оформить пример использования функции с разными типами данных.
Инфраструктура фронтенда и базовые подходы
Разбираем управление состоянием (Redux), клиентский роутинг и принципы построения SPA. Учимся деплоить и настраивать сборку проектов с Webpack, Vite и Rollup.
Управление состоянием приложения, Redux и работа с actions (исторический контекст)
освоить Redux Toolkit.
17 ноября, 20:00 — 21:30
Клиентский роутинг, построение SPA
изучить роутинг и SPA.
21 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Клиентский роутинг и мини‑SPA. Реализовать **мини‑SPA с клиентским роутингом** (например, React Router) и управлением состоянием (например, Redux Toolkit или Context API). Приложение должно иметь минимум 3 страницы и единое глобальное состояние.



Задачи:

1. Настроить клиентский роутинг с минимум 3 маршрутами.
2. Реализовать глобальное состояние (Redux Toolkit или Context API) и использовать его в нескольких страницах.
3. Добавить форму с управлением данными через глобальный стор.
4. Обеспечить сохранение части состояния в localStorage (например, выбранные настройки).
Особенности деплоя и сборки SPA (CI/CD, Vercel, Netlify)
освоить сборку и деплой фронтенда.
24 ноября, 20:00 — 21:30
Build tools: Vite, Webpack, Rollup, Web Components
изучить инструменты сборки.
28 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Настройка сборки проекта (Vite/Webpack/Rollup). Настроить **сборку проекта** с использованием современного сборщика. Проект должен собирать HTML, CSS и JS, поддерживать dev‑сервер и иметь минимальную структуру исходников и артефактов.



Задачи:

1. Инициализировать проект и подключить сборщик (Vite/Webpack/Rollup) с dev‑сервером.
2. Настроить сборку HTML, CSS и JS, вынести исходники в src/, сборку в dist/.
3. Подключить линтеры (ESLint/Prettier) и настроить их запуск в CI.
4. Добавить скрипты npm для dev/build/preview, приложить краткую инструкцию в README.
React и экосистема
Изучаем React глубже: работа с хуками, паттернами проектирования и глобальным состоянием (Redux Toolkit, Zustand, React Query). Оптимизация, ленивая загрузка и тестирование React-приложений.
Что такое React, JSX, настройка окружения (повторение ключевых основ)
повторить основы React и JSX.
1 декабря, 20:00 — 21:30
Hooks в React: углубляемся в детали useState, useEffect, useContext и кастомных хуков
изучить продвинутые хуки React.
5 декабря, 20:00 — 21:30
Современные паттерны в React: (HOC, Render Props — исторический контекст, фокус на кастомных хуках)
начать использовать паттерны React-разработки.
8 декабря, 20:00 — 21:30
Домашние задания: 1
ДЗ
Современные паттерны в React и кастомные хуки. Реализовать небольшое React‑приложение/фичу, в которой часть логики вынесена **в кастомные хуки**. Допустимы Render Props/HOC как исторический контекст, основной упор — на кастомные хуки.



Задачи:

1. Спроектировать 1–2 кастомных хука для повторяющейся логики (работа с API/формой/подписками).
2. Показать использование хуков в нескольких компонентах.
3. При необходимости продемонстрировать Render Props/HOC как альтернативный подход.
TypeScript в React: типизация компонентов, пропсов и хуков
изучить TypeScript в React.
12 декабря, 20:00 — 21:30
Состояние приложения в React: Redux Toolkit, Zustand, React Query
научиться управлять состоянием React-приложений.
15 декабря, 20:00 — 21:30
React Router, ленивая загрузка компонентов, Suspense, оптимизация React-приложения
освоить роутинг и оптимизацию.
19 декабря, 20:00 — 21:30
Домашние задания: 1
ДЗ
React Router, ленивая загрузка, Suspense. Добавить в приложение React **маршрутизацию через React Router**, реализовать ленивую загрузку (lazy/Suspense) для отдельных страниц и хранить глобальное состояние маршрутизации (например, выбранный раздел) в сторе.



Задачи:

1. Настроить React Router с минимум 3 маршрутами, включая параметризованный.
2. Добавить lazy() + Suspense() для ленивой загрузки минимум 1–2 страниц.
3. Хранить часть состояния маршрутизации глобально (Redux/Context) и использовать его в компонентах.
Тестирование React-приложений: React Testing Library, Jest (упоминание E2E-тестирования)
изучить тестирование React-компонентов.
22 декабря, 20:00 — 21:30
Домашние задания: 1
ДЗ
Тестирование React-компонентов (React Testing Library, Jest). Для существующих компонентов написать **набор тестов**: рендер, взаимодействие пользователя (user‑events), эффекты и состояния.



Задачи:

1. Настроить Jest + React Testing Library (если не настроены).
2. Написать тесты на рендер и поведение компонентов, включая пользовательские события.
3. Добавить тесты на пограничные случаи и состояния загрузки/ошибки (если применимо).
Консультация по ДЗ
получить ответы на вопросы по ДЗ и по курсу.
26 декабря, 20:00 — 21:30
Vue и экосистема
Знакомимся с Vue 3: компоненты, реактивность, управление состоянием через Pinia, динамические маршруты и SSR с Nuxt.
Основы Vue3: компоненты, реактивность
изучить Vue-компоненты.
12 января, 20:00 — 21:30
Управление компонентами во Vue: Composition API
изучить Composition API.
16 января, 20:00 — 21:30
Домашние задания: 1
ДЗ
Vue 3 Composition API — структура приложения. Создать фрагмент приложения на Vue 3 с использованием **Composition API.** Вынести бизнес‑логику в композиционные функции и продемонстрировать повторное использование.



Задачи:

1. Создать 3–4 компонента и связать их через пропсы/эмиты.
2. Вынести логику (работа с данными/валидаторы/формы) в use* композиционные функции.
3. Добавить реактивность (ref, reactive, computed, watch).
Состояние приложения во Vue: Pinia (Vuex — исторический контекст)
освоить состояние с Pinia.
19 января, 20:00 — 21:30
Routing и Advanced Vue: динамические маршруты, Nuxt (SSR)
изучить продвинутый роутинг Vue.
23 января, 20:00 — 21:30
Домашние задания: 1
ДЗ
Vue Router и Nuxt (SSR). Добавить в Vue‑приложение **динамические маршруты** и интегрировать **Nuxt для SSR** (можно отдельным минимальным проектом на Nuxt 3), продемонстрировав серверный рендеринг и маршрутизацию.



Задачи:

1. Настроить vue-router с параметрами и вложенными маршрутами.
2. Создать минимальный проект на Nuxt 3 с 2–3 страницами (или перенести существующий) и показать SSR.
3. Передать данные на сервере и отрендерить их на странице (fetch/useAsyncData).
Консультация по ДЗ
получить ответы на вопросы по ДЗ и по курсу.
26 января, 20:00 — 21:30
Архитектура и SSR
Изучаем современные подходы к архитектуре фронтенда: микрофронтенды, Monorepo, SSR/SSG. Осваиваем Next.js, Nuxt 3 и другие рендеринг-фреймворки.
Архитектура фронтенд-приложений: микрофронтенды, Monorepo (Nx, Turborepo), принципы SOLID
изучить микрофронтенды, Monorepo и SOLID.
30 января, 20:00 — 21:30
Современные рендеринг-фреймворки и SSR: Next.js, Nuxt 3, SvelteKit, SSG/ISR
освоить серверный рендеринг (SSR).
2 февраля, 20:00 — 21:30
Домашние задания: 1
ДЗ
Минимальное SSR‑приложение (Next.js/Nuxt 3). Создать небольшой **проект с 2–3 страницами**, серверной загрузкой данных и отображением на странице. Показать маршрутизацию и базовый SSR.



Задачи:

1. Инициализировать проект на Next.js или Nuxt 3.
2. Реализовать 2–3 страницы и маршруты, добавить серверную загрузку данных.
3. Задеплоить приложение (Vercel/Netlify) и приложить ссылку в README/PR.
Backend, серверные технологии и контейнеризация
Создаём API, работаем с REST и RPC, осваиваем Node.js и Nest.js. Подключаем базы данных через PostgreSQL, ORM и Prisma. Интегрируем контейнеризацию с Docker и CI/CD.
Разработка собственного API
создать собственный API.
6 февраля, 20:00 — 21:30
REST, RPC и сетевые запросы
освоить сетевые запросы и протоколы.
9 февраля, 20:00 — 21:30
Домашние задания: 1
ДЗ
REST API с CRUD (пример: «Клон LeetCode»). Реализовать **REST API** для сущностей «задача» и «пользователь»: создание, чтение, обновление, удаление. Предусмотреть пагинацию и фильтрацию списка задач.



Задачи:

1. Инициализировать серверный проект (Node/Nest/Express — на выбор).
2. Реализовать CRUD для задач и пользователей, продумать DTO/валидацию.
3. Добавить базовые тесты для контроллеров/сервисов.
Введение в Node.js и NPM, работа с браузером
освоить Node.js и NPM.
13 февраля, 20:00 — 21:30
Под капотом Node.js: Event Loop, Timers, модули
изучить внутреннюю работу Node.js.
16 февраля, 20:00 — 21:30
Продвинутая серверная разработка на Nest.js
освоить Nest.js.
20 февраля, 20:00 — 21:30
Базы данных и ORM: PostgreSQL, TypeORM или Prisma в связке с Nest.js
освоить работу с базами данных и ORM.
27 февраля, 20:00 — 21:30
Домашние задания: 1
ДЗ
База данных и ORM (PostgreSQL + TypeORM/Prisma). Интегрировать **PostgreSQL и ORM** (TypeORM или Prisma): описать модели, миграции и репозитории/сервисы, продемонстрировать базовые операции.



Задачи:

1. Подключить PostgreSQL, описать конфигурацию.
2. Настроить ORM (TypeORM/Prisma), описать модели и миграции.
3. Реализовать сервисы/репозитории и CRUD‑операции с базой.
Контейнеризация (Docker) и интеграция с CI/CD
освоить контейнеризацию и CI/CD.
2 марта, 20:00 — 21:30
Проектная работа
Заключительный месяц курса посвящен проектной работе. Это то, чем интересно заниматься студенту на базе знаний, полученных на курсе.
При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей.

Проект должен стать примером кода, который можно показывать потенциальным работодателям.
Вводное занятие по проектной работе. Обзор пройденных фреймворков и технологий
выбрать и обсудить тему проектной работы;
спланировать работу над проектом;
ознакомиться с регламентом работы над проектом.
6 марта, 20:00 — 21:30
Лектор: Алексей Кадочников
Домашние задания: 1
ДЗ
Проектная работа. Заключительный месяц курса посвящен проектной работе. Это то, чем интересно заниматься студенту на базе знаний, полученных на курсе. При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей.


Проект должен стать примером кода, который можно показывать потенциальным работодателям.
Карьерная консультация
подготовиться к собеседованиям.
20 марта, 20:00 — 21:30
Лектор: Алексей Кадочников
Защита проектных работ
защитить проект и получить рекомендации экспертов.
6 апреля, 20:00 — 21:30
Лектор: Алексей Кадочников

Преподаватель

Михаил Кузнецов
Fullstack developer и тимлид в Zalando, Germany
Проектирует и поддерживает процессы WEB-разработки. Опыт в разработке - более 10 лет. Консультировал по разработке, занимался популяризацией фронтенд-фреймворка Vue и SvelteJS.

Кроме JavaScript, имеет опыт разработки на Python и Java. С 2017 года выступал на множестве конференций, включая Frontend Conf Moscow, JSNation, Vue conference и др.


Образование: Xимфак МГУ.

Otus Certificated Educator
Преподаватель курсов:
JavaScript Developer. Professional