MVC или не MVC
"Какой ты, нафиг, танкист?" (c) из какой-то попсовой песни
Вот здесь, на мой взгляд, очень интересная статья на английском языке описывающая почему абсолютное большинство современных фреймворков не могут гордиться MVC-соответствием. В статье делается упор на PHP фреймворки, но как пользователь Rails могу сказать что и его это тоже касается. За другие языки не говорю: не использовал уже давно. Подозреваю, что статья написана как скрытая реклама собственного фреймворка, но это не так уж важно.
Архитектура (если более правильно, то паттерн :)) MVC настолько мутировала, что появилось много-много различных клонов. Что есть MVC, это контроллер (отечающий за бизнес логику), модель (хранение данных) и вид (представление). Всё здорово, если бы не НО. Посмотрите на сам паттерн MVC и все поймут, что 70% (хоть и говорят) не поддерживают ту связь, которую навязывает MVC (что здорово, на мой субъективный взгляд). Копнём глубже... Контроллер... Что есть контролер? Это единственный экшен с определённым набором методов (кто работал с сервлетами меня поймёт) или контроллер как "коробка" для этих самых экшенов (ZF)? Я могу продолжать так до бесконечности... Я не считаю себя экспертом в области данной архитектуры, но повидал я в ней много и с увереностью могу сказать, что MVC (в том виде про которую сейчас говорят) это есть простое расщипление на 3 компонента (данные, где они обрабатываются и вид).
Так вот человек о том и пишет, что промутировав MVC перестала быть собой. Я на своем же примере знаю как хочется иногда зафигачить во View что-то типа @post.author.city.population (работа с моделями). Вот это-то и плохо, что позволяя _легко_ делать такое фреймворк подталкивает к нарушению основ MVC.
Я статью не читал, ибо не очень с инглишом дружу :(. По поводу запихнуть в вид модель... Как сказал один умный человек "ты не должен этого хотеть" :). Если к этому разумно подходить (вернее по моей теории :)), то такой возможности у тебя вообще не будет, ибо у меня контроллер является связующим между видом и моделью... А чтоб не повадно было в контроллере писать хтмл, я делаю (ввожу сейчас помаленьку) респонс, который будет определять ещё и тип контента (для того, чтобы контролер не думал, какой шаблонизатор подключать, а тупо обрабатывал данные).