Продвинутый Frontend
В Production на React
Подробную информацию о курсе вы можете получить из ролика ниже.
Для кого предназначен курс?
Курс идеально подойдет 2 категориям людей:
1. Люди, которые в данный момент ищут работу или близки к этому.
2. Действующие junior или middle разработчики, которые хотят повысить профессиональный уровень.
Первая категория получит топовый проект в портфолио + десяток новых технологий и подходов к разработке в резюме.
Вторая категория сможет расширить свой кругозор и повысить профессиональный уровень.
Кому курс не подойдет?
Если вы совсем недавно начали изучать React и абсолютно не понимаете, хотя бы на самом базовом уровне концепцию Redux, то курс вам не подойдет.
Если вы понимаете, что происходит в ролике "Фундаментальный React от А до Я" и закрепили его на практике, а также понимаете основы Redux, то курс подойдет вам идеально.
Также плюсом будет минимальное понимание TypeScript (достаточно основ).
Что представляет из себя курс?
Курс представляет из себя не оторванные от реальности уроки, а последовательную разработку большого production проекта на React, включая настройку всей инфраструктуры, тестовой среды, работу с сервером\данными и тд. По итогу вы получите большой и сложный с технической точки зрения проект, большое кол-во коммитов в гит. К проекту всегда можно будет вернуться и посмотреть как реализован тот или иной момент.
Важно! Курс не про React. React лишь одна из технологий, которая используется в курсе. Курс про Frontend разработку в целом и охватывает более глобальные концепции и подходы, включая конфигурацию, тесты и прочее (про это можно почитать подробнее ниже). Разработчикам на Vue/Svelte/angular курс также подойдет (но со специфичными для реакта моментами)
Подробнее о знаниях, которые вы получите, можно прочитать ниже.
Курс записан в моем стиле, сжатый, с монтажом и пост озвучкой. Включает более 45ч материалов + еженедельные стримы в записи второго потока (если они подразумеваются тарифом).
Набор знаний, который вы получите
P.S. не пугайся незнакомых названий, курс и нужен для того, чтобы это исправить :)
*не отражает порядок роликов и структуру курса
Конфигурация
Конфигурация
Полная конфигурация проекта с нуля (Webpack). Настроим React, Typescript, Babel, scss, css modules, vite, prettier, также настроим тестовую среду, jest, rtl, storybook, loki, Cypress. Большое кол-во плагинов, лоадеров + грамотная декомпозиция конфига.
UI
UI
Библиотека компонентов. Более 20 UI компонентов, включая модальные окна с порталами, выпадающие списки\меню, сайдбар, кнопки с разными темами, скелетоны, попапы, ленивые изображения, drawer, аватары, вертикальные и горизонтальные стеки и тд. Будем писать как свои решения так и опробуем headless библиотеки. Все компоненты будем делать доступными и семантичными.
Архитектура
Архитектура
Архитектура. Модули. Декомпозиция. Бизнес сущности. Слабое зацепление и сильная связность. Переиспользование. Конкретные примеры
Оптимизация
Оптимизация
Оптимизация. Перерисовки и как с ними бороться. Анализ размера бандла. Использование бандл анализаторов. Асинхронные компоненты. Асинхронные Redux редюссеры. Reducer manager и создание небольшой библиотечки по внедрению асинхронных редюсеров. Изоляция модулей. Throttle и debounce. Инъекция эндпоинтов для лучшего code splitting. Научимся удобно асинхронно подгружать библиотеки, которые не нужны сразу (для анимаций и драг энд дропа).
Реальные задачи
Реальные задачи
Решение большого кол-ва задач из реальной разработки (фильтры, поиск, сортировки, бесконечные ленты, многоблочные страницы, комментарии и тд). Похоже на то, что было в фундаментальном курсе, но в разы больше и сделано технически интереснее.
Темы и стили
Темы и стили
CSS модули и темизация. Создадим правильную структуру стилей и внедрим 3 цветовые темы нашего приложения (темная, светлая, оранжевая). Организуем стили так, что внедрить новую тему будет стоить 5 минут. Поработаем с scss
Сторибук и скриншотные тесты
Сторибук и скриншотные тесты
С нуля настроим Storybook и будем описывать story case для каждого компонента и всех его состояний. Научимся делать скриншотные тесты, что позволит делать регрессионое тестирование нашего интерфейса.
Unit и RTL тесты
Unit и RTL тесты
С нуля настроим тестовую среду для unit jest тестов и тестов на компоненты с помощью React Testing Library. Будем тестировать каждый разработанный модуль (селекторы, async thunks, редюсеры, компоненты).
e2e тестирование
e2e тестирование
В самом конце разработки покроем разработанные модули E2E тестами. Разберем кастомные команды, фикстуры, моки, стабы, интерцепторы, скипы. Научимся правильно выполнять запросы и писать end-to-end тесты.
Линтинг и prettier
Линтинг и prettier
Настроим под себя code-style, в частности настроим ESlint и stylelint. Для eslint реализуем самописный плагин в виде отдельного npm пакета. Плагин будет содержать 3 самописных правила, которые будут следить за правилами архитектуры, изоляцией модулей, правильным доступам к слоям. Правила будут обладать автофиксом, который будет автоматически исправлять неправильный код. Для формативания и наведения красоты в коде настроим Prettier.
Ошибки
Ошибки
Научимся правильно обрабатывать ошибки и реализуем ErrorBoundary. Посмотрим на практике как он работает.
Роутинг
Роутинг
React-router-dom V6. Конечно в нашем приложении будет несколько страниц, этим никого не удивишь. Настроим доступы для этих страниц, по авторизованности, либо по ролям. Также для сохранения минимального размера бандла научимся выносить страницы в отдельные чанки.
i18n
i18n
Научимся работать с интернационализацией. Внедрим в интерфейс два языка (русский и английский). Также научимся разбивать переводы на чанки и подгружать их порциями, чтобы не увеличивать размер бандла. Поговорим про плюральные формы и рассмотрим конкретные примеры.
TypeScript
TypeScript
С нуля настроим TS (tsconfig), подружим его с вебпаком, поработаем с union типами, дженерик компонентами, в общем тайпскрипта будет много.
Babel
Babel
Настроим Babel и в качестве тренировки подключим плагинчик, который будет автоматически извлекать ключи для переводов из кода и добавлять в JSON файлики. Также реализуем свой собственный плагин с нужным для нас функционалом. На практике посмотрим как работают babel плагины, поговорим про парсинг АСТ дерева.
СI/CD и pre-commit хуки
СI/CD и pre-commit хуки
Настроим ci pipeline, который будет прогонять за нас 3 вида тестов, делать сборку проекта, сторибука, прогонять код на линтеры. Также настроим pre commit хуки с помощью husky. Научимся генерировать отчеты для юнит и скриншотных тестов с информацией об успешных/упавших тестах и также научимся сразу их публиковать в ci github pages.
Нормализация данных
Нормализация данных
Также уделим внимание нормализации данных. Поговорим про саму концепцию и реализуем пример в коде. Поработаем с EntityAdapter.
Виртуализация
Виртуализация
При работе со списками важно не забыть про Perfomance. Поработаем с виртуальными списками, на примере посмотрим как можно повысить производительность.
Инфраструктура
Инфраструктура
Инфраструктуру настроим таким образом, чтобы и сам проект, и тестовое окружение, и сторибук умели использовать все фичи и работать как единное целое. (ts, css modules, глобальные переменные сборки и тд).
Рефакторинг
Рефакторинг
В конце разработки мы проанализируем получившийся код и постараемся его отрефакторить, разберем слабые места, исправим их и поймем на конкретных примерах, как стоит декомпозировать и изолировать модули в приложении.
Запросы и работа с данными
Запросы и работа с данными
Вся работа с данными будет осуществляться с помощью Redux toolkit. Первую часть курса мы будем работать в классическом стиле и для работы с АПИ будем использовать axios инстанс, который заинжектим в асинк thunks. Также, для того чтобы понять и опробовать разные подходы мы опробуем RTK query. Научимся асинхронно инжектить новые эндпоинты, чтобы сохранять размер бандла минимальным (code splitting).
Отчеты
Отчеты
Для скриншотных/юнит/компонентных тестов научимся генерировать удобные отчеты, с помощью которых отслеживать работу тестов станет проще.
Кодогенерация
Кодогенерация
Реализуем свой скрипт, который будет генерировать нам фичи\сущности со всей структурой папок и файлов, в которых будет уже все необходимое содержимое.
Процесс разработки
Процесс разработки
В ходе разработки мы решим большое количество проблем, в живом формате будем искать решение, изучать документацию, правильно составлять запросы для поиска решения проблемы.
Миграция на React 18
Миграция на React 18
В конце разработки мигрируем проект с 17 на 18 версию реакта.
Дебаг
Дебаг
Научимся использовать различные дебаг инструменты: вкладка network, application в браузере, девтулзы реакта, редакса, бандланализаторы и тд.
Кольцевые зависимости и babel плагин
Кольцевые зависимости и babel плагин
Поговорим о кольцевых зависимостях, научимся их находить, а также реализуем свой babel плагин, который будет удалять лишний код из сборки.
Альтернативная сборка
Альтернативная сборка
Для сравнения бандлеров и расширения кругозора, помимо webpack, также настроим vite, подключим необходимые плагины.
Автоматизирова
нный рефакторинг
Автоматизирова
нный рефакторинг
Научимся писать скрипты для парсинг AST исходного кода нашего приложения. Работать с нодами абстрактного синтаксического дерева, изменять код во всем проекте глобально с помощью скриптов, создавать файлы, вносить в них нужное содержимое.
Деплой и nginx
Деплой и nginx
Арендуем облачный сервер. Настроим nginx. Добавим сертификат и настроим HTTPS. Подключим доменное имя. Научимся сжимать (gzip) бандл. Настроим проксирование запросов и сделаем скрипт для деплоя.
Browserlist
Browserlist
Научимся заполнять browserlist и посмотрим, как это влияет на бандл.
Мобилки и десктоп. Разные user agents
Мобилки и десктоп. Разные user agents
В зависимости от user agentа пользователя научимся отрисовывать мобильные/десктопные компоненты. Рассмотрим, как можно оптимизировать бандл с помощью методики. Научимся делать фабрики компонентов.
Git flow vs trunk based. Feature flags, user settings
Git flow vs trunk based. Feature flags, user settings
Поговорим про два самых часто используемых подхода в разработке Git flow и trunk based. Рассмотрим концепцию feature flags и настроим автоматику, которая умеет удалять неиспользуемые фича флаги. Реализуем динамические настройки пользователя.
Редизайн и автоматизация
Редизайн и автоматизация
Сделаем полный редизайн проекта в конце курса по макетам от дизайнера. При этом сама верстка не так интересна, добавим в редизайн интересных технических деталей.
1. Модульная гибкая layout система с вложенными layout.
2. Одновременно в коде будет существовать и старый, и новый дизайн. Пользователь сможет сам выбрать в интерфейсе отображение. При этом дизайна - два, бизнес логика - одна.
3. Реализуем скрипт, который при выполнении удалит весь старый код. При этом правильно организуем кодовую базу, чтобы избавиться от ручного удаления и предоставить это автоматике.
Более ~45 часов концентрированной инфы + доп. материалы
Более ~25 часов стримов в записи с прошлого потока (они актуальны на 100%), на которых разбираем модули и различные темы.
Сообщество заряженных на результат людей
Стоимость обучения
Доступ к курсу + чат
49 999₽
*или 2 083₽ в месяц
- Доступ ко всем материалам курса
- Доступ в телеграм чат со всеми участниками курса
Можно взять в рассрочку на 3, 6, 12 или 24 месяцев (на странице оплаты). Рассрочка без процентов! Можно выбрать сбербанк или тинькофф
Инструкция по оплате - https://ulbitv.ru/payment_instruction
Курс + чат + записи стримов 2 потока
54 999 ₽
*или 2 291₽ в месяц
- Доступ ко всем материалам курса
- Доступ в телеграм чат со всеми участниками курса
- Доступ к записям стримов 2 потока (~2ч длительность) (ответы на вопросы, разбор материала, просмотр резюме, обсуждение трудоустройства)
Можно взять в рассрочку на 3, 6, 12 или 24 месяцев (на странице оплаты). Рассрочка без процентов! Можно выбрать сбербанк или тинькофф
Инструкция по оплате - https://ulbitv.ru/payment_instruction
* При покупке в рассрочку на 24 месяца.
FAQ - часто задаваемые вопросы
Отзывы участников 1го потока
Опубликовал абсолютно все отзывы, которые получил, без фильтрации. Если по какой-то причине вы не увидели здесь свой отзыв, но хотели бы, чтоб он здесь был, отпишитесь пожалуйста мне в ЛС (участники 1го потока).
Отзывы участников 2го потока
Второй поток еще не закончен и поэтому отзывов не так много. После окончания потока отзывы буду дополнять, по мере получения
Автор курса
Ульби Тимур
Автор канала Ulbi TV на YouTube
ИП Ульби Т.В.
ОГРНИП 322070000021695
ИНН 071402091572
г. Москва
Любое использование материалов с данного сайта, допускается не иначе как с письменного разрешения его правообладателя - ИП Ульби Т.В. ОГРНИП 322070000021695 ИНН 071402091572. В случае Использования материала с сайта и нарушение авторских и смежных прав, правообладателя наказывается в соответствии со ст 146 УК РФ. Вся информация предоставленная на сайте ни при каких условиях не является публичной офертой, определяемой положениями Статьи 437 (2) Гражданского кодекса РФ