Цитата (chee @ 2.12.2014 - 19:02) |
вы серьезно? |
Более чем. А что не так?
Все дело в том, что это на самом деле быстрее. Ну если конечно код не повторяется больше чем 2, максимум 3 раза. Если больше, конечно стоит объединить. Ну а в примере с админкой - сам Бог велел. Объединять совершенно различный, практически непересекающийся, функционал накладнее как со стороны железа, так и со стороны разработки.
Нельзя же все доводить до абсурда, есть же здравый смысл.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
ApuktaChehov
2.12.2014 - 23:34
Что-то много вопросов вокруг MVC.
MVC это структура, модель проектирования, которых тьма. Чего на ней на одной зацикливаться?
Чем занимается контроллер?
Обрабатывает входящие данные, вызывает модель и представление. Все хорошо и просто.
А что делает модель? Выполнят запрос к БД и возвращает результат?
Например, у меня система. Нужно создать заказ. Для этого нужно узнать заказчика, узнать предмета заказа, его реквизиты, обслуживающего менеджера и т.д. И это только создание заказа. А у заказов есть еще и статусы выполнения, оплата, логистика, документация, тех. задание, история выполнения и еще куча всего. И что все это будет делать одна модель, или 5 моделей, а может 10?
Это, товарищи, целый отряд классов, которые обслуживают весь функционал обработки заказов. Так что модель в данном случае, может только организовывать работу этих классов, после того, как контроллер передал ей все что нужно. А лучше, если она плавно перейдет в бизнес логику.
А вы тут про повтор кода в модели. Скажу по секрету, если вы сталкиваетесь с повтором кода, то чаще это ошибка проектирования.
По поводу вопроса автора о списке новостей.
В зависимости от функционала обработкой новостей должен заниматься один класс или группа классов. А в них уже должна быть заложена реакция на полномочия юзера.
Если это админ, давать возможность редактировать новости, если юзер, то только просмотр и т.д.
И не будет повторений.
Да, тут модель внезапно превращается из одно класса в кучу. Но ведь это бизнес логика...
_____________
ApuktaChehov
Цитата |
А вы тут про повтор кода в модели. Скажу по секрету, если вы сталкиваетесь с повтором кода, то чаще это ошибка проектирования. |
Не в модели, а в моделях. Да и собственно даже не в моделях, а в тех самых преславутых контроллерах.
Цитата |
Если это админ, давать возможность редактировать новости, если юзер, то только просмотр и т.д. |
Не путай. Это не админ. Это модератор. Администратор (владелец) должен иметь доступ к глобальным настройкам сайта. К редактированию и статистике системных данных и много к чему еще, что вообще не должно соприкасаться с юзерами. А ты все пароли в одну таблицу в базе. Роли, шмоли... Сколько эксплойтов на разные вордпрессы и ему подобное по сети гуляло и гуляет.
А повтора все равно не избежать. Так лучше делать это сознательно, именно там, где рационально. А не параноиться, как с собачками.
Кстати, тем, кто считает, что собака зло, могу загадку загадать. Столкнулся с задачей, которая без собаки не решается впринципе. Ну по крайней мере я не решил (хотя не сильно и хотел
![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
).
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
ApuktaChehov
3.12.2014 - 00:02
twin ну да я о модераторах.
И тут я с тобой согласен. Самый безопасный функционал, это функционал которого нет )
Это я про админку, которая отдельно от всего.
_____________
slobotsky.denis
3.12.2014 - 19:04
Цитата (twin @ 2.12.2014 - 22:46) |
И вообще, чего все так боятся повтора кода... Лично я чувствую себя куда комфортнее, когда знаю, что изменив что-либо в той же админке, у меня ничего не поплывет на клиентской стороне. А нажать ctrl+c куда проще и быстрее, нежели ломать голову, как это все безболезненно совместить.
|
Внезапно, согласен) Пару статей в тему
тыц тыц
_____________
PHP: The Right WayБесплатное обучение Symfony2Tox: 55BB67DE54B1CB14F8C37B4F3AED64E6A45922988D22F85EF75039751F26F05460664D978F5C
Invis1ble
3.12.2014 - 19:14
зачем же ты выбрал Symfony с такими взглядами?
_____________
Профессиональная разработка на заказЯ на GitHub |
второй профиль
Вообще это называется God object. По большому счету. Собрать все в одну кучу, которая будет управляться одной строчкой и назвать это инкапсуляцией. Это обычно заводит в такие дебри, которые потом ни один тест не разгребет.
Мне очень нравится афоризм Экзюпери.
Цитата |
Как видно, совершенство достигается не тогда, когда уже нечего прибавить, но когда уже ничего нельзя отнять. |
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
slobotsky.denis
4.12.2014 - 17:23
Invis1ble, затем, что в symfony всё в меру)
_____________
PHP: The Right WayБесплатное обучение Symfony2Tox: 55BB67DE54B1CB14F8C37B4F3AED64E6A45922988D22F85EF75039751F26F05460664D978F5C
жуть какая) модель понятие растяжимое)))
модель это отображение работы бизнес-логики, и не более
модель ничего не должна знать о том где ее данные хранятся и откуда берутся, она с ними работает и обрабатывает
Все что работает с бд, io и тд это уже инфраструктура или контроллер, и не имеет никакого отношения к бизнес логике
Invis1ble
4.12.2014 - 18:21
Цитата (slobotsky.denis @ 4.12.2014 - 16:23) |
Invis1ble, затем, что в symfony всё в меру) |
Alchemist
4.12.2014 - 19:22
twin, так ты задачку-то давай... Интересно же ж...