У меня есть проект, который в настоящее время повсюду, и я думаю о его создании MVC.
Проблема в том, что система в настоящее время используется, и я не могу изменить интерфейс (он находится в кадрах: s). Также есть некоторые вещи, которые мне нужно будет обрабатывать самостоятельно, такие как создание паролей, логин и уровни пользователей.
У меня уже есть модель стороной вниз MVC, поэтому мне интересно, стоит ли использовать фреймворк, такой как Zend Framework или CakePHP, или просто для того, чтобы закодировать мой собственный View и Controllers, чтобы обойти эту проблему?
Мне придется работать над этим медленно, и я не уверен, смогу ли я это сделать, если буду использовать одну из готовых фреймворков.
Обычно я бы отшатнулся и посоветовал не вносить в мир еще одну веб-структуру MVC, но справедливо отметить, что у наших хостов Joel и Jeff есть другое мнение по этому вопросу:
От Джоэла: в защиту возрождения колеса от Джеффа: не переустанавливайте колесо
Последняя мысль: если это проект с одним человеком, то вы только влияете на этот выбор. Мое сопротивление всплыло бы, если бы участвовала команда, разрабатывающая долгоживущий продукт. Вы можете оказать плохую услугу команде и клиенту, если вы откажетесь самостоятельно.
Я написал свою собственную структуру MVC для Coldfusion, потому что нынешний «аромат месяца» Mach-II был ужасно медленным. После переключения время генерации страницы снизилось с 2-5 секунд до 9 миллисекунд.
За последние 3 года я разработал эту структуру в качестве конкурента для любых коммерческих или открытых исходных кодов, которые я использовал (и я использовал немало), создавая библиотеки функций и компоненты для целого ряда общих задач ( CMS, обработка CC, обработка изображений и т. Д.)
Несмотря на то, что не было никаких сомнений в том, что «изобретать колесо» колесо, в котором я попал, было именно тем, что мне нужно для выполнения своей работы. Я понимаю, как это работает с интимностью, которую ни одна документация не может предоставить.
Конечно, однажды какой-нибудь будущий программист может проклинать мой код, желая, чтобы оспа на мне не использовала их любимую библиотеку, – но, честно говоря, мне было все равно. Я написал это для меня, он делает то, что мне нужно, и все хорошо. Я также многому научился в этом процессе.
Сказав, что вы НЕ автоматически делаете своих клиентов / сотрудников плохими, написав свои собственные рамки. Общественные рамки, как правило, не имеют реального направления, поэтому они, как правило, раздуваются повсеместно, пытаясь удержать всех довольных. Это раздувание означает больше узнать, что может пойти не так. Ваша структура будет соответствовать гораздо меньшему набору требований, и с хорошей документацией можно было бы намного легче понять и настроить, чем более общедоступный.
Я говорю, иди за ним, немного отдохни на краю. Может быть, через 5 лет вы освободите следующий «Мах-II» или что-то еще, и мы все можем судить об этом.
Вы, в частности, найдете CakePHP, чтобы быть довольно «инвазивным». ИМХО для этого вы должны использовать легкий фрейм или написать свой собственный. Обычно я не рекомендую писать свои собственные для такого рода вещей, но когда вы имеете дело с программным обеспечением, которое вы не можете изменить, оно иногда может быть лучшим решением. Кроме того, контроллеру на PHP не сложно писать, поэтому иногда вы можете излишне переоценивать решение, если используете готовое решение, которое слишком тяжело или просто не подходит для ваших текущих ограничений.
Для облегченных фреймворков MVC я настоятельно рекомендую CodeIgniter .
Переосмысление колес плохо. Используйте проверенную и проверенную инфраструктуру, такую как Zend Framework, если у вас нет действительно особого основания.
Это зависит от вашей задачи. Некоторые тривиальные задачи уже имеют отличные решения, но иногда сложнее исправить ошибки или подобрать решение для ваших нужд, чем написать собственный.
В любом случае, когда вы начинаете использовать фреймворк, вам нужно потратить некоторое время, чтобы изучить его. И иногда писать быстрее, чем обучение.
Просто зайдите в Google о решениях, которые вам нужны, найдите зрелые, посмотрите на их функциональность, прочитайте открытые ошибки и решите, хотите ли вы их использовать. Это все, что я могу вам сказать без детальной задачи.
Проблема в том, что система в настоящее время используется, и я не могу изменить интерфейс (он находится в кадрах: s). Также есть некоторые вещи, которые мне нужно будет обрабатывать самостоятельно, такие как создание паролей, логин и уровни пользователей.
Мне придется работать над этим медленно, и я не уверен, смогу ли я это сделать, если буду использовать одну из готовых фреймворков.
Не зная подробностей вашей ситуации, я бы сказал, что тот факт, что система в настоящее время работает, сделает интеграцию MVC общего назначения сложной для интеграции.
Сказав это, многие структуры MVC состоят из модульных компонентов, которые могут использоваться как автономные объекты. Вы можете использовать некоторые функции этих фреймворков для использования в своем проекте.
Аутентификация пользователя, управление сеансом и обработка паролей – одна из областей, в частности, которые должны строиться только с нуля, если у вас есть большой опыт в этой области.
Разработка структуры – непростая задача, к слову, вы должны постоянно координировать, тестировать, исправлять, тестировать и разрабатывать новые функции. Поэтому, если вы не собираетесь делать это с открытым исходным кодом, что мы будем хорошей идеей для создания огромного сообщества тестировщиков-разработчиков, вы не должны думать о том, чтобы изобретать колесо. Он круглый, он хорошо вращается, поэтому выбирайте лучший, который соответствует вашим потребностям и получает прибыль за несколько месяцев кодирования и тестирования сообщества.
С наилучшими пожеланиями