Що нового?

Придбаний [ulbitv.ru] Продвинутый Frontend. В Production на React.

Інформація про покупку
Тип покупки: Складчина
Ціна: 26666 ГРН
Учасників: 1 з 381
Організатор: Відсутній
Статус: Набір учасників
Внесок: 72.8 ГРН
0%
Основний список
Резервний список

Gadzhi

Модератор
[ulbitv.ru] Продвинутый Frontend. В Production на React.

Курс идеально подойдет 2 категориям людей:
  • Люди, которые в данный момент ищут работу или близки к этому.
  • Действующие junior или middle разработчики, которые хотят повысить профессиональный уровень.
Конфигурация



Полная конфигурация проекта с нуля (Webpack). Настроим React, Typescript, Babel, scss, css modules, также настроим тестовую среду, jest, rtl, storybook, loki, webdriwer IO. Большое кол-во плагинов, лоадеров + граммотная декомпозиция конфига.


UI



Библиотека компонентов. Более 15 UI компонентов, включая модальные окна с порталами, выпадающие списки\меню, сайдбар, кнопки с разными темами, скелетоны, аватары, вертикальные и горизонтальные стеки и тд. Будем писать как свои решения так и опробуем headless библиотеки. Все компоненты будем делать доступными и семантичными.


Архитектура



Архитектура. Модули. Декомпозиция. Бизнес сущности. Слабая связанность и переиспользование.


Оптимизация



Оптимизация. Перерисовки и как с ними бороться. Анализ размера бандла. Использование бандл анализаторов. Асинхронные компоненты. Асинхронные Redux редюссеры. Reducer manager и создание небольшой библиотечки по внедрению асинхронных редюсеров. Изоляция модулей. Throttle и debounce. Инъекция эндпоинтов для лучшего code splitting.


Реальные задачи



Решение большого кол-ва задач из реальной разработки (фильтры, поиск, сортировки, бесконечные ленты, многоблочные страницы, комментарии и тд). Похоже на то, что было в фундаментальном курсе, но в разы больше и сделано технически интереснее.


Темы и стили



CSS модули и темизация. Создадим правильную структуру стилей и внедрим 3 цветовые темы нашего приложения (темная, светлая, оранжевая). Организуем стили так, что внедрить новую тему будет стоить 5 минут. Адаптивный дизайн интерфейса.


Сторибук и скриншотные тесты



С нуля настроим Storybook и будем описывать story case для каждого компонента и всех его состояний. Научимся делать скриншотные тесты, что позволит делать регрессионое тестирование нашего интерфейса.


Unit и RTL тесты



С нуля настроим тестовую среду для unit jest тестов и тестов на компоненты с помощью React Testing Library. Будем тестировать каждый разработанный модуль (селекторы, async thunks, редюсеры, компоненты).


e2e тестирование



В самом конце разработки покроем разработанные модули E2E тестами.


Линтинг



Настроим под себя code-style, в частности настроим ESlint и stylelint. Для eslint реализуем самописный плагин в виде отдельного npm пакета, который будет проверять правильность модульных импортов (относительные или абсолютные).


Ошибки



Научимся правильно обрабатывать ошибки и реализуем ErrorBoundary. Посмотрим на практике как он работает.


Роутинг



React-router-dom V6. Конечно в нашем приложении будет несколько страниц, этим никого не удивишь. Настроим доступы для этих страниц, по авторизованности, либо по ролям. Также для сохранения минимального размера бандла научимся выносить страницы в отдельные чанки.


i18n



Научимся работать с интернационализацией. Внедрим в интерфейс два языка (русский и английский). Также научимся разбивать переводы на чанки и подгружать их порциями, чтобы не увеличивать размер бандла.


TypeScript



С нуля настроим TS (tsconfig), подружим его с вебпаком, поработаем с union типами, в общем тайпскрипта будет много.


Bebel



Настроим Babel и в качестве тренировки подключим плагинчик, который будет автоматически извлекать ключи для переводов из кода и добавлять в JSON файлики. Также реализуем свой собственный плагин, который будет удалять лишний для нас код из Production сборки.


СI/CD и

pre-commit хуки



Настроим простейший ci pipeline, который будет прогонять за нас 3 вида тестов, делать сборку проекта, сторибука, прогонять код на линтеры. Также настроим pre commit хуки с помощью husky.


Нормализцаия данных




Также уделим внимание нормализации данных. Поговорим про саму концепцию и реализуем пример в коде. Поработаем с EntityAdapter.


Виртуализация




При работе со списками важно не забыть про Perfomance. Поработаем с виртуальными списками, на примере посмотрим как можно повысить производительность.


Инфраструктура




Инфраструктуру настроим таким образом, чтобы и сам проект, и тестовое окружение, и сторибук умели использовать все фичи и работать как единное целое. (ts, css modules, глобальные переменные сборки и тд).


Рефакторинг




В конце разработки мы проанализируем получившийся код и постараемся его отрефакторить, разберем слабые места, исправим их и поймем на конкретных примерах, как стоит декомпозировать и изолировать модули в приложении.


Запросы и работа с данными




Вся работа с данными будет осуществляться с помощью Redux toolkit. Первую часть курса мы будем работать в классическом стиле и для работы с АПИ будем использовать axios инстанс, который заинжектим в асинк thunks. Также, для того чтобы понять и опробовать разные подходы к концу курса мы опробуем RTK query. Научимся асинхронно инжектить новые эндпоинты, чтобы сохранять размер бандла минимальным (code splitting).


Отчеты




Для скриншотных/юнит/компонентных тестов научимся генерировать удобные отчеты, с помощью которых отслеживать работу тестов станет проще.


Кодогенерация




Реализуем свой скрипт, который будет генерировать нам фичи\сущности со всей структурой папок и файлов, в которых будет уже все необходимое содержимое.


Процесс разработки




В ходе разработки мы решим большое количество проблем, в живом формате будем искать решение, изучать документацию, правильно составлять запросы для поиска решения проблемы.


Миграция на React 18




В конце разработки мигрируем проект с 17 на 18 версию реакта.


Дебаг




Научимся использовать различные дебаг инструменты: вкладка network, application в браузере, девтулзы реакта, редакса, бандланализаторы и тд.


Кольцевые зависимости и babel плагин




Поговорим о кольцевых зависимостях, научимся их находить, а также реализуем свой babel плагин, который будет удалять лишний код из сборки.
Продажник: https://ulbitv.ru/frontend
 
Угорі