Должен ли я использовать рамки или написать свой собственный MVC? - PullRequest
6 голосов
/ 23 мая 2009

У меня есть проект, который в настоящее время повсеместно, и я думаю сделать его MVC.

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

У меня уже есть сторона модели MVC, поэтому мне интересно, стоит ли использовать такую ​​среду, как Zend Framework или CakePHP, или просто написать собственный код View и Controllers для решения этой проблемы?

Мне придется работать над этим медленно, и я не уверен, смогу ли я сделать это, если использую одну из готовых платформ.

Ответы [ 8 ]

9 голосов
/ 23 мая 2009

Я написал свой собственный MVC-фреймворк для Coldfusion, потому что нынешний «аромат месяца» Mach-II был ужасно медленным. После переключения время генерации моей страницы уменьшилось с 2-5 секунд до 9 миллисекунд.

За последние 3 года я превратил эту платформу в соперника за любую коммерческую платформу или среду с открытым исходным кодом, которую я использовал (и я использовал довольно много), создавая библиотеки функций и компоненты для целого ряда общие задачи (CMS, обработка CC, обработка изображений и т. д.)

Несмотря на то, что не было никаких сомнений в том, что «заново изобретать колесо» колесо, с которым я в итоге оказался, было именно тем, что мне нужно для выполнения моей работы. Я понимаю, как это работает с близостью, которую никогда не могла предоставить никакая документация.

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

Сказав, что вы НЕ оказываете своим клиентам / коллегам автоматически плохую услугу, написав собственную структуру. Общественные структуры, как правило, не имеют реального направления, поэтому они стремительно раздуваются, пытаясь сделать всех счастливыми. Это раздувание означает больше, чтобы учиться, больше, что может пойти не так. Ваша структура будет отвечать гораздо меньшему набору требований, и с хорошей документацией ее будет гораздо проще понять и настроить, чем более общедоступной.

Я говорю: дерзай, живи на грани. Может быть, через 5 лет вы выпустите следующий "Mach-II" или что-то еще, и мы все можем ссориться по этому поводу.

8 голосов
/ 23 мая 2009

Обычно я бы в ужасе отшатнулся и не советовал бы принести в мир еще одну веб-среду MVC, но справедливо отметить, что у наших хостов Джоэла и Джеффа есть другое мнение по этому вопросу:

От Джоэла: В защиту переизобретения колеса От Джеффа: Не изобретай колесо

Еще одна мысль: если это проект с одним человеком, то этот выбор влияет только на вас. Мое сопротивление усилилось бы, если бы была задействована команда, разрабатывающая долгоживущий продукт. Вы можете оказать медвежью услугу команде и клиенту, если вы бросите свою собственную.

5 голосов
/ 23 мая 2009

В частности, вы найдете CakePHP довольно «инвазивным». ИМХО для этого вам следует использовать облегченный фреймворк или написать свой. Обычно я не советую писать свои собственные для такого рода вещей, но когда вы имеете дело с программным обеспечением, вы не можете изменить его, иногда это может быть лучшим решением. Кроме того, контроллер в PHP не так уж и труден для написания, так что вы можете иногда излишне усложнять решение, если используете готовое решение, которое либо слишком тяжелое, либо просто не подходит для ваших текущих ограничений.

Для легких сред MVC я настоятельно рекомендую CodeIgniter .

3 голосов
/ 23 мая 2009

Колесо переизобретено плохо. Используйте проверенные и проверенные фреймворки, такие как Zend Framework, если у вас нет действительно особой причины не делать этого.

2 голосов
/ 23 мая 2009

Проблема в том, что система в настоящее время используется, и я не могу изменить интерфейс (это в фреймах: s). Также есть некоторые вещи, которые мне понадобятся, например генерация пароля, логин и уровни пользователя. 1002 *

Мне придется работать над этим медленно, и я не уверен, смогу ли я сделать это, если я буду использовать одну из готовых фреймворков.

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

Сказав это, многие инфраструктуры MVC состоят из модульных компонентов, которые можно использовать как отдельные объекты. Возможно, вам удастся воспользоваться некоторыми функциями этих структур для использования в вашем проекте.

Аутентификация пользователей, управление сеансами и обработка паролей - это одна из областей, которая должна создаваться только с нуля, если у вас большой опыт в этой области.

2 голосов
/ 23 мая 2009

Это зависит от вашей задачи. У некоторых тривиальных задач уже есть отличные решения, но иногда труднее исправить ошибки или найти решение для ваших нужд, чем написать собственное.

В любом случае, когда вы начинаете использовать фреймворк - вам придется потратить некоторое время на его изучение. И иногда писать быстрее, чем учиться.

Просто найдите в Google нужные вам решения, найдите подходящие, посмотрите на их функциональность, прочитайте открытые ошибки и решите, хотите ли вы их использовать. Это все, что я могу сказать вам без подробного задания.

1 голос
/ 16 января 2018

Вопрос старый, но все еще в силе. Лично я парень "с нуля". Я люблю экономить время, но не на все расходы. Поэтому я использую рамки взаимозаменяемо. Это означает, что я создаю все свои бизнес-классы / правила в процессе TDD вне какой-либо среды, а затем интегрирую их в среду, которая позволяет объединить мою работу со стандартными службами и библиотеками. Но моя работа не связана с ними. Они развязаны и быстры.

Для более прямого ответа на вопрос. Я создал свою собственную CMS. И я могу вам сказать, что, если вы хотите чему-то научиться, создайте свое. Даже если вы никогда не поделитесь этим. В итоге вы получите гораздо лучшее понимание других систем, и вам будет гораздо проще выбрать одну из них. Опять же, вы никогда не захотите использовать другой, чем ваш. Но это обычно происходит после нескольких ревизий:)

Так что да, создавайте свои собственные, но изучайте других.

1 голос
/ 17 июня 2009

Разработка фреймворка - задача не из легких, кстати, вы должны постоянно кодировать, тестировать, исправлять, тестировать и разрабатывать новые функции. Так что, если вы не собираетесь делать его открытым исходным кодом, что будет хорошей идеей для огромного сообщества тестировщиков-разработчиков, вам не следует думать об изобретении колеса. Он круглый, хорошо крутится, поэтому выберите лучший, который соответствует вашим потребностям, и воспользуйтесь несколькими месяцами программирования и тестирования сообщества.

С наилучшими пожеланиями

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...