Какая структура веб-разработки лучше всего работает с Google App Engine?

Теперь, когда Google разрешает Java на App Engine, мне интересно, какое влияние это оказывает на выбор веб-инфраструктуры для App Engine.

  • Я понимаю, что Google предоставляет webapp рамки, которые являются довольно barebone.
  • И версия django.96. доступно для App Engine. ограничительный.
  • web2py сжигает ресурсы, из того, что я слышал.
  • Rails (теперь доступно) не может использовать ActiveRecord, ActiveResource, restclient, rmagick.

Есть ли что-то, что мне не хватает - какие-либо фреймворки хорошо работают в App Engine?

Ответ 1

Лично я нашел Python более увлекательным. Это только я. Однако есть несколько коммандных разработчиков Java, которые оценят поддержку Java в GAE. Кроме того, поддержка Java была хорошим выбором для Google, поскольку она позволит платформе GAE потенциально размещать многие другие языки. Очевидно, немного рано ожидать, что все языки на основе JVM будут работать на GAE, но будущее выглядит многообещающим. Пока мы можем посмотреть, что есть и не работает, взглянув на эту страницу GAE Java Group.

Возвращаясь к Python, я думаю, что небольшие веб-приложения отлично справятся со встроенной инфраструктурой webapp. Другие приложения получат больше пользы от Django 1.0. Посмотрите на статьи GAE в разделе фреймворков за несколько хороших чтений об этом. В любом случае у вас, несомненно, будут ограничения в любом из ваших вариантов, поскольку большинство веб-фреймворков разработаны с учетом реляционных баз данных... в каком datastore/bigtable нет. Кроме того, платформа GAE должна быть изолирована по соображениям безопасности, что также ограничивает вас. Надеюсь, это поможет.

Ответ 2

На самом деле web2py очень легкий и с ~ 1.50 на GAE он кэширует все байткоды, скомпилированные модели/представления/контроллеры.

Тем не менее вам нужно учитывать, что по умолчанию есть сеансы, основанные на хранилищах данных, и это может добавить некоторые накладные расходы по сравнению с инфраструктурой, в которой нет сеансов, работающих с GAE (по крайней мере, не по умолчанию).

Сам Web2py DAL не добавляет значительных накладных расходов по сравнению с наивными API-интерфейсами Google datastore.

Ответ 3

Попробуйте Spring. Он поддерживает JPA и JDO.

Там даже версия Python для Spring теперь.

Ответ 4

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

  • Google Apps создается поверх/используя Django.
  • Django в значительной степени поддерживает и поддерживает Google Apps, поэтому я ожидаю, что он будет лучше интегрироваться с Google Apps, чем другие.
  • В Google Apps встроены ограничения, которые вы не можете обходить (или не должны). Эти ограничения не связаны с какой-либо конкретной структурой, скорее они встроены в структуру приложений, так сказать.
  • Я бы не стал беспокоиться о производительности фреймворка - попробуйте улучшить свой дизайн/структуру, он, безусловно, окупится лучше.
  • Google в конечном итоге перейдет на Django 1.0 и новее, а также обновит Google Apps.
  • Они используют memcache (или эквивалент), поэтому учтите это и используйте его.

Ответ 5

Это действительно зависит от того, что вы хотите сделать. По моему опыту, что-то маленькая рука, сделанная поверх Webob, действительно хороша для API. Но для полноценных сайтов, которым нужны шаблоны/сеансы/сложная маршрутизация/кэширование django, сложно превзойти.

Учтите, что если у вас огромные фреймворки (например, django 1.0), первый запрос всегда занимает около 3 секунд, чтобы загрузить все в память и хранить его там до 15 секунд после этого запроса.

И пока вы ходите по магазинам вокруг фреймворков, учтите, что:

  • ORM не относится к платформе, поэтому в принципе это не имеет значения.
  • Быстрые шаблоны (например, Cheetah) не будут быстрыми (или даже работают), поскольку они не могут использовать расширения c.
  • Кэширование может быть самым важным, чтобы все было быстро.

Ответ 6

Если вы ищете Python, то Django будет вашим лучшим выбором.

Ответ 7

Struts 2 предназначен для работы с Google App Engine (по крайней мере, с точки зрения примеров приложений). Следуйте за этой темой:

http://www.nabble.com/Google-App-Engine-support--td22972179.html

Похоже, что есть некоторые проблемы с Sitemesh в плане шаблонов, но если вы используете JSP, вы должны быть в порядке.

Это хороший выбор в качестве рамки веб-приложений.

Ответ 8

Я рекомендую web.py, если вы используете Python.

Ответ 9

Я использую новую структуру система GAE. Это похоже на Django, но работайте над AppEngine.

С уважением!

Ответ 10

Для Python используйте webapp2 (поставляется в комплекте с движком приложения)

Ответ 11

Если вы хотите создать крупномасштабное приложение и вам нужна более гибкая структура, вы можете взглянуть на Pyramid Python Framework. Раньше он назывался Пилонами. В этой структуре есть много хороших компаний.