Является ли парадигма MVC (Model View Controller) лучшим способом разработки или просто новой сложной? - PullRequest
1 голос
/ 01 мая 2009

Я пытался использовать RoR или ASP.NET MVC, но мне кажется, что MVC - это радикальный способ изменить парадигму программирования. Это просто мое сопротивление изменениям или это действительно странно? Иногда я чувствую себя действительно потерянным! Любое предложение, или я просто должен вернуться и программировать по-старому?

Ответы [ 7 ]

2 голосов
/ 01 мая 2009

Изменение трудно для всех нас. В дни DOS мы использовали шаблон MTF Menu-Table-Form.

MVC существует уже давно, и есть вкус ко всем основным языкам, используемым в интернет-программировании.

Если вы используете MVC какое-то время, вы, вероятно, не захотите возвращаться. Это обеспечивает разделение кода и повторное использование. Я использовал RoR, Django и ASP.NET MVC, и шаблон MVC сделал мою разработку.

Я бы посоветовал вам придерживаться этого! Купите книгу или найдите наставника.

2 голосов
/ 01 мая 2009

Ну, это, безусловно, популярно. Если вы делаете RoR, не боритесь с парадигмой, продолжайте с этим, в этом весь смысл RoR.

Если вы в состоянии определить свою парадигму, то дело в том, что MVC, как правило, просто MV. Контроллер, по мнению некоторых сторонников шаблона, больше предназначен для множественных представлений, что почти всегда не так в данном проекте (хотя в конечном итоге данные могут в конечном итоге рассматриваться по-разному в другом контексте внутри предприятия). , В зависимости от графического интерфейса, отдельный контроллер может помочь в тестируемости кода (если контроллер выступает в качестве тестируемого класса, а компонент GUI просто выполняет тестируемые методы самым минимальным возможным способом).

MVC возникла из толпы SmallTalk, которая совсем недавно попала в морфический паттерн (где объект отображает себя через внутренний класс, который подклассирует соответствующие компоненты GUI). Это не сложный способ сделать HTML-материал наверняка, потому что HTML не может быть эффективно предоставлен дизайнерам.

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

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

2 голосов
/ 01 мая 2009

Какова ваша основа для сравнения? Если вы привыкли к perl / CGI, возможно, это немного сложнее!

В веб-терминах MVC (или Model-Template-View, как предпочитает Django, чтобы отделить от оригинального Smalltalk MVC) имеет тенденцию к лучшему разделению проблем в вашем приложении. По моему (и многим другому) опыту, это приводит к более расширяемому, хорошо протестированному коду, который легче поддерживать.

Некоторые предложения для продвижения вперед. Трудно давать конкретные рекомендации, не зная немного больше о вашем прошлом, и обучение может быть таким личным делом в любом случае:

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

Извините, я не работал с платформой MS в течение нескольких лет, поэтому не могу дать никаких советов по ASP.NET.

2 голосов
/ 01 мая 2009

MVC не особенно новый. Он датируется 1979 годом ( ссылка ), поэтому достаточно взрослый, чтобы пить.

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

0 голосов
/ 01 мая 2009

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

0 голосов
/ 01 мая 2009

Это только кажется радикальным, потому что это новое. Это на самом деле не так уж и плохо.

Может помочь просмотр реального приложения.

Посмотрите http://www.nerddinner.com/ для достойного примера, а также бесплатную главу в книге Professional ASP.NET MVC 1.0 , которая охватывает код.

0 голосов
/ 01 мая 2009

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

...