Из википедии:
Model-view-controller (MVC, «Модель-представление-поведение», «Модель-представление-контроллер») – архитектура программного обеспечения, в которой модель данных приложения, пользовательский интерфейс и управляющая логика разделены на три отдельных компонента, так, что модификация одного из компонентов оказывает минимальное воздействие на другие компоненты.
Шаблон MVC позволяет разделить данные, представление и обработку действий пользователя на три отдельных компонента.
- Модель (Model). Модель предоставляет данные (обычно для View), а также реагирует на запросы (обычно от контроллера), изменяя свое состояние;
- Представление (View). Отвечает за отображение информации (пользовательский интерфейс);
- Поведение (Controller). Интерпретирует данные, введенные пользователем, и информирует модель и представление о необходимости соответствующей реакции.
Model
Модель – это представление определенного участка данных, в общем случае – таблицы базы данных. В модели определяются требования и расчеты необходимые для взаимодействия с этими данными. Обычно требования для формата данных, связи и отношения между данными, методы создания (create
), обновления (update
), удаления (destroy
), поиска (find
) и пр.
Каждый раз, когда ты пишешь код, который напрямую взаимодействует с объектом данных, ты должен размещать его в модели.
У нас в проекте изначально было заведено правило размещать громоздкие запросы к объекту данных, например find_by_sql
, в модели, представляющей данный объект данных.
Правило controller-model: fat model, skinny controller, «жирная модель, тощий контроллер».
Controller
Контроллер – логика между моделью и представлением. Контроллеры содержат методы, которые напрямую относятся к действиям (actions) выполняемым пользователем. Назначение контроллера – отвечать на действия, запрошенные пользователем. Как то: принять параметры, заданные пользователем, обработать эти параметры, задействовать модель, и затем передать запрошенные данные в обработанной форме представлению (view).
Методы контроллера обычно краткие; это небольшие куски кода, выполняющие специфические задачи. Если они содержат более 9-10 строк, это должно тебя насторожить: возможно, ты делаешь слишком много в контроллере и недостаточно в модели (см. правило controller-model).
View
View (Вид/Представление) – это где данные, обработанные контроллером, получают вывод в формате, запрошенным пользователем. В rails это обычно html, но может быть xml, js, json или другой. Разделение между контроллером и представлением еще более понятное, чем между контроллером и моделью.
Правило controller-view: никакого вывода данных в контроллере, никакой обработки данных в представлении.
По материалам статьи Rails and MVC.
2 Комментариев :
привет, у тебя будет время начинающему помочь разобраться с чего начать в освоении этого языка?)
На данном этапе блог «сместился» в Blogger-тематику. Обычно я пишу о том, с чем работаю, поэтому не исключено, что будут статьи по Ruby и фреймворку Rails. А вот как скоро – сказать затрудняюсь.
Отправить комментарий
Жги!