К списку уроков

Урок 7. Библиотеки готовых компонентов.
Архитектуры frontend приложений.

Онлайн и в Б-934, 18 ноября (вторник), 15:15

Видео посвящено обзору популярных библиотек компонентов и архитектур фронтенд-приложений с практическими примерами работы с ними. Автор подробно рассказывает о библиотеке Quasar и Undesign, их архитектуре и возможностях кастомизации компонентов. Значительное внимание уделяется различным паттернам построения фронтенд-архитектуры (классической, модульной, атомарной и FSD — feature-sliced design), их достоинствам и недостаткам, а также аспектам удобства разработки и поддержки кода. В качестве примера проводится интеграция Undesign в Vue-проект с демонстрацией настроек компонента input.

Материал будет особенно полезен фронтенд-разработчикам, начинающим работать с готовыми UI-библиотеками, а также интересующимся архитектурными решениями для масштабируемых приложений. Из видео вы узнаете, как правильно выбирать и использовать библиотеки компонентов, как организовать структуру проекта для удобства поддержки и масштабирования, а также получите представление об основных современных архитектурных подходах.

---

Хронологическая структура

- 00:00 - 02:55: Введение в библиотеки компонентов и обзор популярных решений

Рассказ об основных популярных библиотеках: Quasar как фреймворк, Undesign как UI-библиотека, Vue и PrimeVue. Объясняется, что опыт работы с одной библиотекой легко переносится на другие из-за схожести API.

Ключевая мысль: разбор библиотек Quasar и Undesign, понимание, что изучение одной поможет в работе с остальными.

- 02:55 - 08:50: Архитектура Quasar и Undesign, особенности API компонентов

Подробное описание структуры проектов на Quasar (папки, файлы, конфигурация) и характеристик Undesign (чистая UI-библиотека без архитектуры). Объяснение, как API компонентов позволяет управлять поведением и стилями, на примере autocomplete.

Вывод: использование готовых компонентов сокращает объём кода, ускоряет разработку и упрощает поддержку.

- 08:50 - 20:00: Кастомизация компонентов на примере Undesign, интеграция и отладка

Практическая интеграция Undesign в проект Vue. Демонстрация установки, подключения input-компонента, работы с авторазмером textarea и настройками. Разбор ошибок и особенностей конфигурации.

Заключение: подключение и настройка библиотек компонентов требует внимательности к документации и особенностям.

- 20:00 - 23:59: Важность использования готовых компонентов и варианты типовых UI-элементов

Обсуждение типичных UI-элементов (слайдеры, карусели, коллапсы, таблицы, комментарии), предоставляемых библиотеками, что значительно упрощает жизнь разработчика. Подчёркивается связь с дизайн-системами, например, Figma.

Основная мысль: использование готовых компонентов ускоряет разработку и обеспечивает согласованность дизайна.

- 24:00 - 29:10: Классическая архитектура фронтенда: структура папок, проблемы и ограничения

Обзор классической архитектуры проекта с разделением на папки pages, components, API, helpers, store и assets. Объяснение минусов: отсутствие четких границ, кольцевые зависимости, смешение бизнес-логики и UI.

Итог: классическая архитектура подходит для небольших проектов или одиночной разработки.

- 29:10 - 34:59: Модульная архитектура: организация кода по модулям, преимущества и недостатки

Разбор вложенности модулей, UI-компонентов и страниц. Модули изолируют бизнес-логику, содержат API, store, валидации и локальные компоненты. Выделены преимущества (изоляция, удаляемость) и проблемы (не всегда понятно, что выносить в модуль).

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

- 35:00 - 37:00: Атомарная архитектура: концепция атомов, молекул и организмов

Описание подхода по построению UI из минимальных компонентов («атомов»), объединённых в молекулы и организмы. Недостаток – отсутствие привязки к бизнес-логике, не всегда удобна в продакшене.

Основная идея: атомарность хороша для построения UI, но недостаточно отражает бизнес-функционал.

- 37:00 - 59:00: FSD (Feature-Sliced Design): современный подход к архитектуре фронтенда

Подробное объяснение структуры слоев, слайсов и сегментов в FSD. Примеры сегментов: UI, API, utils, константы, entities с бизнес-сущностями. Рассмотрение примеров использования: формы регистрации, авторизация, виджеты. Демонстрация организации кода с public API и экспортами.

Акцент на лёгкости управления большими приложениями, минимизации связности и максимальном сосредоточении бизнес-логики внутри фич.

Ключевой итог: FSD обеспечивает модульность, поддерживаемость и scalability современных приложений.

- 59:00 - 01:00:20: Завершение занятия, краткое резюме и анонс следующего

Автор благодарит зрителей, упоминает, что дальше будет общее занятие по взаимодействию с командой и советам по развитию в Frontend.

---

Ключевые идеи и инсайты

- ⚡ Библиотеки компонентов как Quasar и Undesign существенно ускоряют разработку за счёт готовых решений и возможности кастомизации API.

- 🚀 Опыт работы с одной библиотекой компонентов легко масштабируется на работу с другими, из-за схожих принципов и API.

- 🏗️ Обзор нескольких архитектурных стилей фронтенда (классическая, модульная, атомарная, FSD) помогает понять плюсы и минусы каждого подхода и выбрать наиболее подходящий для конкретного проекта.

- 🔄 FSD (Feature-Sliced Design) – одна из самых современных и популярных архитектур, которая чётко разделяет бизнес-логику, UI-компоненты и слои приложения, улучшая поддержку и масштабируемость.

- 🎨 Связь с дизайнерскими инструментами (например, Figma) при использовании UI-библиотек обеспечивает согласованность визуальной части и кода, что повышает качество и скорость взаимодействия между дизайнерами и разработчиками.

- 🛠️ Практическая демонстрация настройки Undesign в Vue помогает понять детали работы с библиотеками и возникающие проблемы.

---

## Часто задаваемые вопросы (FAQ)

1. Насколько важно знать конкретные библиотеки компонентов при использовании Vue?

Опыт работы с одной библиотекой компонентов даёт базовое понимание для всех остальных, так как API и синтаксис во многом схожи. Знать все библиотеки глубоко не обязательно.

2. Какие основные минусы классической архитектуры фронтенда?

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

3. В чем преимущество FSD (Feature-Sliced Design) перед другими архитектурами?

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

4. Как библиотеки компонентов помогают взаимодействовать с дизайном из Figma?

Использование UI-библиотек, поддерживающих дизайн-систему, позволяет разработчикам использовать те же компоненты, что и дизайнеры, обеспечивая визуальное соответствие и ускоряя работу.

5. Какие типы компонентов чаще всего реализованы в UI-библиотеках?

Это слайдеры, карусели, автокомплиты, таблицы, модальные окна, комментарии — сложные переиспользуемые элементы с бизнес-функционалом или чистым UI.

---

Заключение

Видео представляет собой исчерпывающий обзор современных библиотек компонентов и архитектур фронтенд-приложений с акцентом на практические решения и примеры. Автор показывает, как правильно использовать библиотеки, настраивать их API и интегрировать в проекты. Особенно ценно разъяснение различных архитектурных стилей и то, как они влияют на поддержку и развитие кода. Рекомендуется применять модульный или FSD-подход для средних и больших проектов, а также активно использовать UI-библиотеки для ускорения разработки и повышения качества интерфейсов.

Рекомендуемые действия:

- Изучать документацию популярных библиотек компонентов (Quasar, Undesign).

- Пробовать интегрировать компоненты из библиотек в свои проекты, экспериментировать с их API и настройками.

- Осваивать современную архитектуру FSD для создания масштабируемых и поддерживаемых приложений.

- Использовать единые дизайн-системы совместно с библиотеками для улучшения взаимодействия с дизайнерами.

- При разработке проектов обращать внимание на четкое разделение UI и бизнес-логики для избежания путаницы и сложностей при поддержке.

Это поможет повысить эффективность разработки, качество кода и упростить масштабирование ваших фронтенд-приложений.