Loading deck

«Что есть»  контроллер (controller)?

Самый абстрактный ответ

с точки зрения бэкэнд-разработчика

2 типа приложений

Не интерактивные

Интерактивные

Взаимодействие с пользователем

  • Ввод (запрос, событие)
  • Вывод (ответ, перерисовка)

Контроллер

Связывает ввод и вывод,

создавая логику приложения

  • HTTP-запрос
  • UI-событие
  • рендер +
    HTTP-ответ
  • UI-перерисовка

Задача контроллера

Он только связывает запрос и ответ, все остальное делают другие части системы

Задача контроллера

А в идеале только ...

Для того, чтобы ...

Контроллер в классических веб-приложениях

1. Обработать входящие данные (формы)

3. Запустить рендеринг, заполнить и вернуть ответ

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

(и API на стороне сервера)

Контроллер в GUI-приложениях

MVP, MVVM, ...

Контроллер в JS-приложениях

View Controller, часть ViewModel

Компонентный подход