MVC
26.12.2010 технологии
Наверно я тупой, но с некоторых и до сих пор так и не вкурил преимущества и основную суть MVC, вот так. Зато, если кто-то, как и я, пытается понять, Rulexec сегодня показал эту самую вроде суть на примере с Джангой. А ещё можно попробовать изучать это дело на другом примере — MicroMVC. Мне вообще нравится всякое микро.
Комментарии
Комментирование этой статьи закрыто.
Нет смысла использовать mvc там где она не нужна. Такими являются 95%+ проектов на пхп.
Большинство проектов на пхп выглядят примерно так:
Текущая дата: <?PHP echo date(‘l jS \of F Y h:i:s A’); ?>
Если уж использовать MVC и проектировать в её идеологии, то не без использования фреймворка который её реализует.
вкуриш, когда надо будет создать более-менее серьезный проект :)
Есть книга, без прочтения которой вообще не стоит пытаться что-то делать в объектно-ориентированном стиле. Называется «Приемы объектно-ориентированного проектирования. Паттерны проектирования». Там всё расписано очень понятно и главное на практических примерах.
просто почитай пдфы с описанием паттерном, жава2ее например
Ха! Оригинальное такое мнение, даже рекурсивное. Например, следуя твоей логике, если разрабатываешь новый фреймворк с MVC, то надо его разрабатывать «не без использования» другого фреймворка :)
Что-то не показывается твоя картинка.
Хм, луркмор значит блочит хотлинкинг :(
Вот тут, справа
Grayscaler, я вот её не читал. Срочно надо всё, что я написал в ОО-стиле переписать обратно? :)
Тормоз, тебе rulexec в блоге на мой взгляд всё весьма подробно объяснил. Основная причина использования MVC в django – разделение(разделяй и властвуй). Отдельный уровень работы с БД и т.д. Тебе просто надо попробовать. Если с английским хорошо, то самый первый джанговски туториал почитай. Всё встанет на свои места. В крайнем случае первый туториал djbook.ru, но на него больше времени уйдёт и там мути больше.
У меня в данный момент после django, php вызывает жёсткое отвращение.
Кстати, недавно перевёл обобщение о MVC из руководства Yii. Qiang неплохо обобщил основные принципы: yiiframework.ru/doc/…
Постараюсь всё это понять.
MVC лучше использовать на крупных проектах. Особенно эффективно, если разработчиков несколько и планируете расширяться. Если же ты пишешь что-то по твоему любимому «Getting Real», то не заморачивайся – это действительно бессмысленно.
ЗЫ. Пока не напишешь пару проектов с исключительным использованием MVC, пока не поймешь его кайф. ИМХО.
Это дело привычки. Кто освоил ДАО МВЦ будет его использовать и в мелких, и в крупных проектах. МВЦ не обязательно классы и фреймворки, просто разделение слоев…
Если удобнее писать без MVC, то лучше его не использовать. Шаблоны – это не цель, а средство.
Kichrum: вот кстати, по Getting Real. Фреймворки и MVC имхо наоборот упрощают создание приложений(в плане затрачиваемого времени на разработку и времени на сопровождение, простоты чтения кода и прозрачности исполнения). Как накладные расходы – снижение быстродействия кода, но это уже не столь важно.
Sam Dark, твой код я не видел, но тот, что видел за 15 лет – однозначно шёл в корзину. Ибо стоимость его сопровождения превышала стоимость сопровождения GoF-style кода значительно больше, чем стоимость рабочего времени, затраченного на переписывание.
Медитация над этими материалами дала мне очень многое:
Микро-фреймворки:
KISSMVC
NiceDog
Twitto
1kb framework
fitzgerald
Simple PHP Framework
baseapp
Статьи для просветления:
MVC tutorial
A lightweight and flexible front controller
How to create simple routing framework
Вот еще: Building a simple MVC system with PHP5
Тормоз, ну а чё тут понимать? Как расслоение html-javascript-css, тока для программирования. От и усё.
Евгений Сергеев, не попробовав вкус блюда, сказать, вкусно или невкусно его есть нельзя.
Grayscaler, у меня как раз всё GoF-style. Просто эту конкретную книгу я не читал.
О, каждый раз новая информация добавляется. Всем спасибо! Изучу выборочно ссылки. А вот прямо сейчас надо срочно придумать, чего бы такого замутить за день-два суперского?! :)
@IAD, в целом ты прав, но я бы не отождествлял фреймворки и MVC. Первого без второго почти нет, а вот второе без первого прекрасно существует. Фреймворки упрощают разработку любых проектов, MVC – сложных и расширяемых – примерно так…
Это как это — любых? У каркасов как раз часто есть специализация. Вот, например, всеми любимый RoR вырос, насколько я помню, из внутренней системы слежения за проектом 37signals, или чего-то в этом роде.
Сперва задача. Конкретная. И потом уже люди думают, как её реализовать, и может быть постепенно реализация абстрагируется, чтобы решать и другие задачи. Чаще всего проекты рождаются именно так. Или я не прав?
samlowry,
«не попробовав вкус блюда, сказать, вкусно или невкусно его есть нельзя»
Согласен. Но мне кажется, что понимание приходит тогда, когда ты реально ощутил проблему, а не когда тебе говорят – «это круто, попробуй». Например, я не уверен, что в его мини-проектах MVC даст реальную отдачу.
Не знаю даст или нет, но то, как у меня сделаны страницы в админке Daos, например, мне совсем не нравится. Много дублирования, некрасиво это всё.
То есть я ищу новые подходы не потому что это модно или круто, а потому что меня не устраивают некоторые аспекты старых.
От дублирования в теории избавляются функциями вродь, а не паттернами о_О
По поводу «любых» – смотря какой фреймворк. Может я слишком громко выразился, не спорю, я не претендую, чтоб по моим комментам писали научные работы, посему не очень-то слежу за этим =) Есть же люди, которые утверждают что с вордпресс или друпал можно создать любой проект… Но вот был у нас случай такой, надо было нестандартный проектик сбацать. Решили за основу взять друпал. Вроде бы всё правильно и красиво сделали, всё работает, но так уж система друпала не соответствовала нашим «нестандартным» задачам, что на одной страничке получилось 800 запросов к БД. Проблема не в том, что друпал плох или у нас плохие программисты. Просто ради расширяемости иногда приходится жертвовать ресурсами. Позже мы написали свой движок с нуля…
Evgeny Sergeev: хз, может, вы, проф. программисты высоко летаете, и мелкие проекты вам кажутся предельно простыми, но мне как-то проще в любых проектах джанговский паттерн юзать (как бишь его там зовут, не MVC, а…).
samlowry: MVT, не? model-view-template