16 | MVC: что это, почему важно и как правильно разделять модель, вид и контроллер
Погружаемся в историю и суть паттерна MVC: от появления в Xerox PARC до практических ошибок при его применении. Разбираем роли Model, View, Controller, когда бизнес‑логику выносить в сервисный слой, как работать с репозиториями и кейсами, почему модель должна отдавать минимальный набор данных, и какие архитектурные решения помогают избежать «толстого контроллера». Полезно для бэкенд‑разработчиков и тимлидов, которые хотят правильно организовать структуру приложения. Таймкоды: 00:00:05 — Введение: история MVC (Xerox PARC, Smalltalk‑80) 00:00:55 — Принципы MVC: отделение логики от интерфейса 00:01:51 — Структура MVC: Model, View, Controller — кто за что отвечает 00:02:57 — Преимущества: повторное использование и разделение задач 00:03:46 — Роль модели: данные и форматоры, независимость от вида 00:05:36 — Роль представления: отображение данных, не изменяет их 00:06:42 — Роль контроллера: приём запросов, делегирование, не бизнес‑логика 00:07:26 — Частые ошибки: «толстые контроллеры» и пассивная модель 00:08:16 — Преимущества корректного применения MVC 00:09:43 — Производные шаблоны во фронтенде: презентеры и модели в моду 00:10:15 — Практическая задача: SPA для отзывов без фреймворков (требования) 00:11:51 — Q&A: модель vs бизнес‑логика, где что хранить 00:15:43 — Модель как хранитель логики и важность тонкого контроллера 00:17:47 — Сервисный слой: куда помещать код, связанный с пользователем и профилем 00:19:34 — Проблемы размещения кода и роль сервисов 00:20:08 — История создания MVC и реальные отклонения в фреймворках 00:21:51 — Меню на сайте: кэширование и сервисный слой вместо передачи через экшены 00:23:21 — Синглтон: когда не лучший выбор для общих данных 00:24:35 — Реализация без фреймворка: синглтоны и шаблонизатор 00:25:32 — Структура кода без фреймворка: зависимости от предпочтений 00:26:46 — Модель и её роль: не обязательно данные, но логика возможна 00:27:44 — Нарушения MVC: куда прятать логику и работу с БД 00:28:46 — Работа с изображениями: кейсы и отделение ответственности 00:30:42 — Чёткое разграничение ролей: модель, контроллер, вид, сервисный слой 00:31:39 — Запросы vs бизнес‑логика: почему запросы — не логика 00:32:36 — Репозитории и кейсы: правильный фокус и границы ответственности 00:37:07 — Разделение запросов: fetchers, updaters, удаление — разделять 00:39:45 — Архитектура как искусство: баланс скорости и качества 00:40:05 — Модель и формат данных: модель — не вид, ресурсы как формат 00:40:39 — Минимизация данных: отдавать минимум для отображения 00:41:34 — Структура модели: составные ресурсы и вложенность 00:42:12 — Представление данных в API: формат, а не визуальный вид 00:43:24 — Бизнес‑логика и сущности: когда модель может отсутствовать 00:44:19 — Ресурс vs модель: ресурс — представление данных для клиента
Погружаемся в историю и суть паттерна MVC: от появления в Xerox PARC до практических ошибок при его применении. Разбираем роли Model, View, Controller, когда бизнес‑логику выносить в сервисный слой, как работать с репозиториями и кейсами, почему модель должна отдавать минимальный набор данных, и какие архитектурные решения помогают избежать «толстого контроллера». Полезно для бэкенд‑разработчиков и тимлидов, которые хотят правильно организовать структуру приложения. Таймкоды: 00:00:05 — Введение: история MVC (Xerox PARC, Smalltalk‑80) 00:00:55 — Принципы MVC: отделение логики от интерфейса 00:01:51 — Структура MVC: Model, View, Controller — кто за что отвечает 00:02:57 — Преимущества: повторное использование и разделение задач 00:03:46 — Роль модели: данные и форматоры, независимость от вида 00:05:36 — Роль представления: отображение данных, не изменяет их 00:06:42 — Роль контроллера: приём запросов, делегирование, не бизнес‑логика 00:07:26 — Частые ошибки: «толстые контроллеры» и пассивная модель 00:08:16 — Преимущества корректного применения MVC 00:09:43 — Производные шаблоны во фронтенде: презентеры и модели в моду 00:10:15 — Практическая задача: SPA для отзывов без фреймворков (требования) 00:11:51 — Q&A: модель vs бизнес‑логика, где что хранить 00:15:43 — Модель как хранитель логики и важность тонкого контроллера 00:17:47 — Сервисный слой: куда помещать код, связанный с пользователем и профилем 00:19:34 — Проблемы размещения кода и роль сервисов 00:20:08 — История создания MVC и реальные отклонения в фреймворках 00:21:51 — Меню на сайте: кэширование и сервисный слой вместо передачи через экшены 00:23:21 — Синглтон: когда не лучший выбор для общих данных 00:24:35 — Реализация без фреймворка: синглтоны и шаблонизатор 00:25:32 — Структура кода без фреймворка: зависимости от предпочтений 00:26:46 — Модель и её роль: не обязательно данные, но логика возможна 00:27:44 — Нарушения MVC: куда прятать логику и работу с БД 00:28:46 — Работа с изображениями: кейсы и отделение ответственности 00:30:42 — Чёткое разграничение ролей: модель, контроллер, вид, сервисный слой 00:31:39 — Запросы vs бизнес‑логика: почему запросы — не логика 00:32:36 — Репозитории и кейсы: правильный фокус и границы ответственности 00:37:07 — Разделение запросов: fetchers, updaters, удаление — разделять 00:39:45 — Архитектура как искусство: баланс скорости и качества 00:40:05 — Модель и формат данных: модель — не вид, ресурсы как формат 00:40:39 — Минимизация данных: отдавать минимум для отображения 00:41:34 — Структура модели: составные ресурсы и вложенность 00:42:12 — Представление данных в API: формат, а не визуальный вид 00:43:24 — Бизнес‑логика и сущности: когда модель может отсутствовать 00:44:19 — Ресурс vs модель: ресурс — представление данных для клиента
