Подтвердить что ты не робот

Являются ли Symfony и CakePHP слишком медленными, чтобы их можно было использовать?

До сих пор я всегда говорил, что CakePHP слишком раздутый и медленный. Я не знаю этого, я просто видел "некоторые" тесты. То, что я действительно хочу знать, заключается в том, что если эти две структуры (Symfony и CakePHP) слишком медленны, чтобы их можно было использовать таким образом, что пользователь будет расстроен. Я уже знаю, что эти рамки медленнее, чем другие альтернативы, но это не вопрос.

Я задаю вопрос, потому что хочу создать веб-приложение для управления проектами, и я все еще колеблюсь между парами. У меня были проблемы с изучением Zend, но imho я не очень старался.

Итак, в заключение, в дополнение к первому вопросу выше, я хотел бы задать еще один вопрос:

Если я хочу создать инструмент управления проектами (который представляет собой довольно большой проект), то из следующего следует предложить, учитывая время разработки, скорость получаемого приложения и надежность конечного продукта:

  • Symfony
  • CakePHP
  • Zend Framework

Также я должен упомянуть, что я не знаю ни одной из этих фреймворков и что хочу изучить один из них (по крайней мере).

4b9b3361

Ответ 1

Проблема с бенчмарками заключается в том, что они обычно не поддаются реальному миру. Напишите реальное приложение, и вы увидите, что все рамки находятся примерно на порядок друг друга, когда дело доходит до скорости. И все они медленнее, чем если бы вы не использовали фреймворк (и знаете, как программировать).

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

Что я предлагаю, рассмотрим кучу фреймворков. Попробуйте их (большинство из них имеют "блог" ). Почувствуйте, как они работают. Выберите тот, который вам нравится, а затем немного поиграйте с ним. Изучите его стиль кодирования и то, как ему нравится делать что-то... Самое главное, узнать, как он функционирует. Попытайтесь узнать "почему" за деталями. Способность использовать структуру - это ИМХО, напрямую связанная с пониманием того, как она работает... Не используйте то, что вам неудобно, если только не нужно. Найдите тот, который "подходит" вам, а затем придерживайтесь его, пока вы не будете свободно...

Ответ 2

Я рекомендую cakePHP v1.3, потому что он быстрее и понятен. Вы найдете очень хорошую помощь (документацию и учебные пособия), связанные с этой инфраструктурой. Документация хорошо написана. Даже если вы застряли где-нибудь, вы сможете найти решение в группе stackoverflow или cakephp google или выполнить поиск в google.

Я работал над обеими версиями cakephp (1.2 и 1.3), и я также пробовал работать над картой Zend (я тоже пробовал свой уровень лучше, но застрял в рамках, когда речь зашла о реализации макетов).

Но, проведя более года на cakephp, я с гордостью могу сказать, что это лучшая структура для работы.

Ответ 3

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

Я получил сайты, работающие с symfony, которые довольно быстр, тесты приближаются к исходному статическому шаблону HTML.

Проблема с производительностью может произойти быстрее при использовании фреймворка (и ORM, например Doctrine), чем при установке кода спагетти внутри статической страницы HTML. Это звучит нормально для меня: больше treatements, больше проверок, зависимостей режима, больше кода для синтаксического анализа и т.д.

Если вы хотите быстрее делать приложение, это в основном способы:

  • Получите быстрее аппаратное обеспечение, оно стоит, но может стоить того, если стоимость стоит у программистов и инженеров, что обычно происходит.
  • Оптимизируйте программное обеспечение, большим шагом на этом пути является использование кеширования на нескольких уровнях: код операции, результаты запроса базы данных, любые тяжелые объекты, рендеринг html (частичный и цельный).

С хорошо разработанным MVC-приложением вы можете управлять производительностью в качестве изолированной проблемы, используя профилировщик для просмотра узких мест приложений и обработки их по одному (еще раз оптимизация может быть и на стороне оборудования).

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

Если вы и ваша команда лучше знакомы с Symfony, CakePHP или Zend, тогда идите. Вы будете обрабатывать оптимизацию производительности, как только ваше приложение будет функциональным, есть решения для любых фреймворков.

Если опыт команды слишком широк, и у кого-то есть свои предпочтения, я бы лично предложил Symfony, поскольку его возможности кэширования встроены в структуру (я не знаю других)

Ответ 4

Различия будут незначительными, потому что ваши медленные части всегда будут I/O - базой данных, файловой системой и т.д. Убедитесь, что у вас есть хорошая стратегия кэширования данных и не делайте ничего слишком возмутительного в коде и это не имеет значения.