Symfony и CakePHP слишком медленные, чтобы их можно было использовать? - PullRequest
17 голосов
/ 28 мая 2010

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

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

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

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

  • Symfony
  • CakePHP
  • Zend Framework

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

Ответы [ 4 ]

21 голосов
/ 28 мая 2010

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

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

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

8 голосов
/ 28 мая 2010

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

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

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

6 голосов
/ 31 мая 2010

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

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

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

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

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

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

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

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

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

3 голосов
/ 28 мая 2010

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

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