Symfony и CakePHP являются слишком медленными, чтобы быть применимыми?

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

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

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

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

  • Symfony
  • CakePHP
  • Платформа зенда

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

17
задан Emanuil Rusev 1 December 2011 в 09:13
поделиться

4 ответа

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

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

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

21
ответ дан 30 November 2019 в 11:37
поделиться

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

3
ответ дан 30 November 2019 в 11:37
поделиться

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

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

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

8
ответ дан 30 November 2019 в 11:37
поделиться

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

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

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

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

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

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

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

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

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

6
ответ дан 30 November 2019 в 11:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: