
Недавно я решил "подсесть" на Google App Engine и перевести основные свои сайты на эту платформу. Давно присматривался к appengine, пробовал ее во время первого релиза, и даже некоторые вещи там работают у меня довольно давно.
Как у django разработчика сразу стало понятно что надо использовать джанго, благо там можно запускать Django приложения. Т.к. напрямую это делать нельзя, то первый вопрос который встал заключался в выборе патча который использовать для этого.
На данный момент существует 2 основных проекта — Google App Engine Helper и App Engine Path. У них есть отодно существенное различие — первый минималистичен и использует App Engine Datastore API в то время как второй старается сделать mapping (не подобрал русского слова) между App Engine Datastore API и Django Queryset API что позволяет использовать существующие приложения без особых изменений. Существует еще один проект django-nonrel который позволяет использовать нереляционные СУБД (в основном это для appengine) на Django.
Но со временем вопрос встал по другому — "А нужно ли мне вообще использовать Django?". Забегая вперед скажу что не нужно. Чтобы найти ответ на этот вопрос я решил выписать преимущества Django и вычеркнуть то что не имеет значения либо не может быть использовано
Database Abstraction, QuerySet APIForms frameworkAdmin frameworkAuth frameworkБольшое количество готовых переиспользуемых приложений(возможно только при значительной модификации)- Template engine — присутствует в appengine без Django
- Internationalization API (i18n)
В результате преимущества Django сузились до минимума. Модуль интернационализации можно заменить используя gettext (но как правило не используется вообще в Django проектах). Думаю ответ стал очевиден. Вот еще некоторые заметки которые влияли на принятие решение:
- Все эти расширения и хаки требуют дополнительных операций на сервера, а они считаются и при превышении лимита становятся платными.
- У appengine datastore есть свои преимущества, которые могут быть скрыты и непонятно как реализованы в патчах.
- Некоторые готовые Django приложения придется переписать на webapp фреймворке. Но имея под рукой готовый код переделать его не составляет особого труда.
- Необходимо создавать приложения для работы с аккаунтами. В моем конкретном случае этого не требуется (достаточно встроенной поддержки Google Accounts)
Вот такая история. Пока что делаю на webapp сайтик. Надеюсь в скором времени начну переделывать еще один свой проект на GAE + GWT. Это будет еще более интересно. Темболее впервые в реальном проекте буду использовать Java, но об этом потом.
0 comments:
Post a Comment