Сущности, модули, компоненты
В оставшейся части курса мы будем очень часто обращаться к трём ключевым понятиям,
поэтому в этом коротком уроке разберём, что именно под ними понимается.
Сущности (Entities)
Сущности — это основные строительные блоки домена.
В случае проекта FoodFleet в качестве сущностей могут выступать:
- ресторан,
- клиент,
- блюдо,
- корзина.
Каждая сущность имеет атрибуты (например, ресторан имеет название, адрес, логотип) и операции, а также связи с другими сущностями.
Важно понимать: сущности — это абстракции, они существуют только в голове архитектора или в виде диаграмм. Но при реализации приложения сущности обязательно получают конкретное представление в коде.
Наиболее распространённые варианты реализации сущностей:
- модель в MVC-фреймворке, которая загружает и обрабатывает данные,
- класс, интерфейс или тип в TypeScript, описывающий атрибуты и поведение,
- сервис или кастомный хук в React, инкапсулирующий операции и логику работы с данными.
Модули (Modules)
Если сущности — строительные блоки домена, то модули — строительные блоки приложения.
Первый шаг в декомпозиции архитектуры — разбить приложение на модули.
Например, могут существовать:
- модуль ресторанов,
- модуль клиентов,
- модуль корзины и т. д.
Иногда между сущностью и модулем есть прямое соответствие 1:1, но это не обязательное правило.
Как и сущности, модули — абстракция, но в коде они обычно проявляются как:
- папка внутри проекта,
- роут или страница в зависимости от используемого фреймворка.
Компоненты (Components)
Компоненты — единственное понятие из трёх, которое не имеет абстрактного уровня — это чисто практическая единица кода.
Компоненты проявляются как:
- представление (View) в MVC-фреймворках,
- UI-компоненты в React, Svelte, Vue и других современных инструментах.
Итог
В текущем модуле — модуле проектирования — мы работаем главным образом с абстрактными сущностями и модулями, то есть с архитектурными концепциями.
Конкретное воплощение в коде — компоненты, типы, сервисы — появится в следующих уроках,
где мы перейдём к практической реализации архитектуры.
Это платный урок
Купите полный доступ к курсу чтобы просматривать данный контент
Основы архитектуры фронтенда
Изучите основы проектирования современных, высоконагруженных фронтенд-приложений.
Безопасные платежи обрабатываются сервисом Юкасса
Комментарии
Войдите, чтобы оставить комментарий