Сущности, модули, компоненты

Продолжительность: 3 мин

В оставшейся части курса мы будем очень часто обращаться к трём ключевым понятиям,
поэтому в этом коротком уроке разберём, что именно под ними понимается.

Сущности (Entities)

Сущности — это основные строительные блоки домена.
В случае проекта FoodFleet в качестве сущностей могут выступать:

  • ресторан,
  • клиент,
  • блюдо,
  • корзина.

Каждая сущность имеет атрибуты (например, ресторан имеет название, адрес, логотип) и операции, а также связи с другими сущностями.

Важно понимать: сущности — это абстракции, они существуют только в голове архитектора или в виде диаграмм. Но при реализации приложения сущности обязательно получают конкретное представление в коде.

Наиболее распространённые варианты реализации сущностей:

  • модель в MVC-фреймворке, которая загружает и обрабатывает данные,
  • класс, интерфейс или тип в TypeScript, описывающий атрибуты и поведение,
  • сервис или кастомный хук в React, инкапсулирующий операции и логику работы с данными.

Модули (Modules)

Если сущности — строительные блоки домена, то модули — строительные блоки приложения.

Первый шаг в декомпозиции архитектуры — разбить приложение на модули.
Например, могут существовать:

  • модуль ресторанов,
  • модуль клиентов,
  • модуль корзины и т. д.

Иногда между сущностью и модулем есть прямое соответствие 1:1, но это не обязательное правило.

Как и сущности, модули — абстракция, но в коде они обычно проявляются как:

  • папка внутри проекта,
  • роут или страница в зависимости от используемого фреймворка.

Компоненты (Components)

Компоненты — единственное понятие из трёх, которое не имеет абстрактного уровня — это чисто практическая единица кода.

Компоненты проявляются как:

  • представление (View) в MVC-фреймворках,
  • UI-компоненты в React, Svelte, Vue и других современных инструментах.

Итог

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

Конкретное воплощение в коде — компоненты, типы, сервисы — появится в следующих уроках,
где мы перейдём к практической реализации архитектуры.

Это платный урок

Купите полный доступ к курсу чтобы просматривать данный контент

Основы архитектуры фронтенда

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

3990 Скидка 75%
990

Безопасные платежи обрабатываются сервисом Юкасса

Комментарии

Войдите, чтобы оставить комментарий