Надлежащий дизайн проекта MVC [закрывается]

Используйте пакет grffile .

7
задан vmg 29 November 2015 в 23:45
поделиться

7 ответов

Я предлагаю вам сначала взглянуть на ресурсо-ориентированную архитектуру . Это не даст вам никаких прямых указаний по организации вашего кода. Однако если думать о ресурсах, жизнь становится проще, когда дело доходит до принятия решения о создании нового контроллера. Как только вам удается идентифицировать ресурс в вашей системе, обычно полезно создать модель плюс контроллер для него - хотя это всего лишь практическое правило.

Некоторые дополнительные моменты:

  • ищите ресурсы и создайте модель и контроллер для каждого из них (практическое правило)
  • не бойтесь создавать модели для ресурсов, которые не сохраняются
  • , думайте о контроллерах как о «водопроводе» или «проводке». пользователей в бизнес-домен - их роль состоит в том, чтобы обрабатывать запросы пользователей и пересылать им ответы - сохранять их как можно более тонкими
3
ответ дан 7 December 2019 в 03:19
поделиться

Простое правило выглядит следующим образом: когда я определяю новый тип «элемента», то мое приложение. необходимо управлять, я задаю себе следующие вопросы:

(1) Должны ли предметы такого рода быть постоянными?

(2) Будет ли много экземпляров этого предмета?

Если ответ на оба вопроса вопросы положительный. Я прихожу к выводу, что указанный элемент должен быть моделью (или элементом модели или классом предметной области, в зависимости от терминологии вашей структуры MVC). Когда я определяю новый элемент модели, я также определяю для него контроллер, который будет поддерживать четыре основные операции: создание, получение, обновление, удаление (вполне вероятно, что ваша структура может сгенерировать для вас контроллер по умолчанию).

2
ответ дан 7 December 2019 в 03:19
поделиться

Возможно, вы захотите получить копию «Паттернов архитектуры корпоративных приложений» Мартина Фаулера. В разделе «Веб-презентация» подробно рассказывается о том, как структурировать код при использовании фреймворка, управляемого фронтальным контроллером, как и любой из нынешних фреймворков MVC.

2
ответ дан 7 December 2019 в 03:19
поделиться

Мне нравятся небольшие контроллеры с четко определенной функцией или набором функций. Обычно это означает один контроллер на страницу (или набор похожих страниц). На моем сайте Kohana CSSMySite у меня есть контроллеры about, blog, contact, css и post.

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

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

1
ответ дан 7 December 2019 в 03:19
поделиться

Вот пример того, что я делал в своем приложении Kohana.

Мне нужен был раздел «последние новости», поэтому я установил вверх контроллер, модель и представление под названием «новости».

У моего контроллера новостей были методы index () , feed () и media_releases () .

Моя модель состояла из запросов к базе данных, которые получают мои данные новостей из базы данных MySQL.

И мое представление - это просто много HTML с некоторым и т.п.

0
ответ дан 7 December 2019 в 03:19
поделиться

Есть ли причина, по которой вы не можете определить универсальную систему, которая работает глобально с присвоением метаданных базы данных? Мне кажется, что написание любого кода для доступа и отображения простых данных является ненужной избыточностью.

0
ответ дан 7 December 2019 в 03:19
поделиться

Возможно, хороший способ выучить хорошее программирование MVC - провести некоторое время в Ruby-on-Rails. Я начал использовать рельсы некоторое время назад, и в качестве косвенного результата я считаю, что у меня сейчас очень хорошее понимание MVC. Я вижу рельсы как воплощение MVC. По крайней мере, это может быть забавный путь, изучая MVC ... Что ты подумаешь?

1
ответ дан 7 December 2019 в 03:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: