LINUX.ORG.RU
ФорумTalks

MVC. Что вы о нём думаете.


0

0

Прохжу летнюю практику в одной компании. Нужно было применить MVC (model-view controller). И чувак данный нам в учителя зделал следующее: создал пустой контроллер, который сам создаёт вьюху. Модели толком не было вообще. В результате обсуждени выяснилось что мы должны создавать класс контроллер даже если он ничего не делает. А ещё в контроллере не может быть логики. И говорят что даже не хотят это обсуждать. А как считаете вы - стоит ли создавать контроллер просто потому что так зовётся паттерн мотивируя потенциальной расширяемостью и считаете ли вы что в контроллер нельзя класть никакой логикой?

★★★

понимать «принципы MVC» можно в очень широких пределах, а многие из-за неграмотности называют им и другие, немного похожие паттерны. Алсо, лето еще далеко, копипаста детектирована.

simple_best_world_web_master
()

>А ещё в контроллере не может быть логики. И говорят что даже не хотят это обсуждать. А как считаете вы - стоит ли создавать контроллер просто потому что так зовётся паттерн мотивируя потенциальной расширяемостью и считаете ли вы что в контроллер нельзя класть никакой логикой?

Острая паттернизация головного мозга, чего тут еще сказать.

cvb
()
Ответ на: комментарий от cvb

Логика в контроллере - это очень удобная штука, главное аккуратно

Gorthauer ★★★★★
()

Хм, имхо MVC примерно как модель OSI, ее всерьез принимать не надо. Модель, Вьюха и Контроллер существуют всегда, и не факт, что будут находиться в пределях одного конекретного класса, не говоря уж про объект. Т.е. если класс «контроллера» пустой, это не значит что его нет.

Лично всегда считал что на стороне контроллера осуществляется маршрутизация и диспетчеризация событий.

Конкретная архитектура зависит главным образом от того push или pull модель используется. А иногда разумнее всего использовать самый обычный тупой поллинг и не заморачиваться с протоколами обработки событий.

Кстати, в общем случае M, V и С не расширяемые и взаимозаменяемые. Между ними всегда будет межмодульная связаность, безотносительно модели обработки событий и архитектуры.

Macil ★★★★★
()

Такой же образец, как и многие другие, не более. ООП использую активно, но ООП головного мозга не страдаю, чего и вам желаю.

PayableOnDeath
()
Ответ на: комментарий от PayableOnDeath

>но ООП головного мозга не страдаю, чего и вам желаю.

+100500, главное - не тупое следовать паттернам, а просто думать головой. Иначе может получиться громоздкое тормозящее чудовище, которое, в итоге зохавает ваши силы и время.

eternity
()

>летнюю

16.02.2010

О_О

По теме:

А как считаете вы - стоит ли создавать контроллер просто потому что так зовётся паттерн мотивируя потенциальной расширяемостью и считаете ли вы что в контроллер нельзя класть никакой логикой?

- нет. Для представления данных мы используем мета-дескрипторный фреймворк Magritte, в котором M описываем ручками, а VC получаем автоматом.

yoghurt ★★★★★
()

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

А в целом, паттерн этот весьма широко можно понимать. У меня, например, в одном проекте вьюха и контроллер - одна сущность. (Шаблонные функции для дерганья моделек)

iSage ★★★★
()

Мы считаем что если ты не знаешь что такое MVC то о какой еще практике может идти речь?

ZveN
()

кстати вопрос к знатокам: нет ли где-нибудь описания сей технологии на пальцах буквально, т.е. для дебилов? ... а то я не въезжаю абсолютно.
особенно мне не понятно что оно делает в ruby on rails и zend framework

burzumko
()
Ответ на: комментарий от burzumko

> не понятно что оно делает в ruby on rails

бери академ и за книжки.

ZveN
()

> летнюю практику

Не рано ли? :)

Amp ★★★
()
Ответ на: комментарий от burzumko

> особенно мне не понятно что оно делает в ruby on rails и zend framework

Постановка вопроса меня смущает. Вы, уважаемый, вспоминая дебилизм, надеюсь, фигурально выражаетесь? RoR и в какой-то мере ZF построены _вокруг_ этого паттерна.

shimon ★★★★★
()
Ответ на: комментарий от simple_best_world_web_master

>немного похожие паттерны.

Ну во-первых всё-таки мвц не паттерн :)

Алсо, лето еще далеко, копипаста детектирована.

Блин :) Не летняя практика а просто универ послал в исследовательский отдел.

theos ★★★
() автор топика
Ответ на: комментарий от ZveN

>Мы считаем что если ты не знаешь что такое MVC то о какой еще практике может идти речь?

Ололо! Поведай мне всю правду!

theos ★★★
() автор топика

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

Syncro ★★★★★
()
Ответ на: комментарий от burzumko

пройди пару туториалов («за 15 минут») по созданию хеловорлдов. Дальше ставь задачу, бери референц (и гугол конечно же) в зубы и вперед. Если есть конкретные вопросы спрашивай.

Syncro ★★★★★
()
Ответ на: комментарий от Syncro

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

Никаких веб-фремйворков. Это программирования пользовательского интерфейсов. Странно, что все кто отписался говорят только о вёбе... Да и вопос был вообще об MVC.

theos ★★★
() автор топика
Ответ на: комментарий от ZveN

>на твоих любимых чанах уже рассказали.

На чём-чём?

theos ★★★
() автор топика
Ответ на: комментарий от Syncro

>потому что мвц для веба и предназначен

А я то думал для пользовательского интерфейса вообще...

theos ★★★
() автор топика
Ответ на: комментарий от eternity

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

theos ★★★
() автор топика

>А как считаете вы - стоит ли создавать контроллер просто потому что так зовётся паттерн

Ко всему надо относится с чувством меры.

aldayneko
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.