Каковы дальнейшие шаги для перехода от appengine к полноценному django? - PullRequest
4 голосов
/ 08 января 2011

Я очень новичок в программировании, и я использую appengine, чтобы помочь мне изучить Python и общее кодирование.Я быстро поправляюсь, и мне все это очень нравится:)

Appengine был великолепен тем, что позволил мне просто погрузиться в написание своего приложения и получить что-то живое, что работает (см. http://www.7bks.com/).)Но я понимаю, что чем дольше я продолжаю учиться на appengine, тем больше я ограничиваю себя и запираюсь в единую систему.

Я бы хотел перейти к разработке на полном django (так как django выглядитсупер круто!). Каковы мои следующие шаги? Чтобы вы почувствовали мой уровень знаний:

  • Я не пользователь Unix
  • Я не знаком сэлементы управления командной строки (я до сих пор полностью использую appengine / python через appengine SDK)
  • Я никогда не программировал ни на что, кроме python, нигде, кроме appengine
  • Я знаю слово SQL, ноне знаю, что такое MySQL на самом деле или как его использовать.

Итак, конкретно:

  • Какие навыки мне нужно выучить, чтобы начать работать сполный джанго / питон?
  • Если яСобираясь на хостинг где-то еще, я полагаю, мне нужно научиться некоторым навыкам типа sysadmin (может быть, даже Unix?).Есть ли где-нибудь такое, что предлагает простой хостинг (например, appengine), но поддерживает django?
  • Я слышал такие замечательные вещи о heroku, что думаю о переходе на RoR и переходе туда

Я ценючто я, вероятно, еще не совсем готов отойти от appengine, но я очень страстный ученик (http://www.7bks.com/blog/179001)) и был бы рад, если бы я знал все шаги, которые мне нужно было изучить, чтобы я мог приступить к их изучению.на данный момент, я даже не знаю, какие шаги мне нужно изучить!

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

Спасибо,

Том

PS - если кто-то в Лондоне и воображает, что лично показывает мне веревки, это было бы супер круто :) 1038 *

Ответы [ 5 ]

2 голосов
/ 08 января 2011

Какие навыки мне нужно выучить, чтобы начать работать с полным django / python?

На этот вопрос нелегко ответить, потому что вы не описали приложение. Вы должны записать технологический стек - подробно - или вы никогда не будете знать, какие навыки вам нужны.

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

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

Вот общий стек технологий.

  1. Технически, ОС не имеет значения. Большинство хостинговых сред используют GNU / Linux с открытым исходным кодом, потому что лицензирование недорого. Вы тоже можете сделать это. Вы можете начать с VMWare и скачать хороший дистрибутив Linux. Или вы можете купить очень дешевый ПК и установить Linux прямо с образа DVD, который вы можете загрузить и записать.

    Моя компания требует, чтобы я использовал Windows PC, который они мне дали. Поэтому я разрабатываю в Windows и тестирую в VMWare Linux (на самом деле Fedora 14)

    Чтобы изучить Linux, начните с загрузки и установки. Тогда найдите учебник. Тогда прекратите использовать Windows и учитесь на практике. Переключаться между Windows и Linux сложно. Я могу сделать это, потому что я не очень хорошо знаю Windows. Я отношусь к Windows как к гиперкомплексной IDE со всеми видами нестандартных, не связанных с POSIX причудами, которые я стараюсь игнорировать.

  2. RDBMS. Python поставляется с SQLite. Для многих приложений это работает нормально. Это работает, потому что веб-сайты, как правило, сильно загружены запросами и легкими обновлениями / вставками, поэтому SQLite работает хорошо. MySQL это хорошо. Он прост в установке и работает как на Windows, так и на других ОС.

    Хорошая вещь о Django заключается в том, что вам нужно знать очень мало SQL. Очень мало.

    Однако вам нужно немного узнать о «языке управления данными» (Grant, Revoke и Create User) для работы с MySQL. Вы не будете создавать много пользователей. Но вам нужно создать несколько, чтобы все заработало. Кроме того, по мере развития вашей базы данных вам часто потребуется немного узнать о «языке определения данных» (Drop Table).

    Вам необходимо знать, как сделать резервную копию и восстановить базу данных. Это абсолютно важно.

    Так что найдите руководства администратора базы данных, чтобы начать.

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

  3. Сервер приложений. Мы используем Apache с модулем mod_wsgi. Есть множество вариантов. Услуги хостинга варьируются в зависимости от того, что им требуется и что они позволяют. В некоторых из них предварительно настроены Apache, mod_wsgi и Django. Некоторые нет. Некоторые не разрешают возиться с конфигурацией Apache. Некоторые делают. Вам, вероятно, не нужно много знать об этом, потому что вы, вероятно, можете найти хостинг, который будет обрабатывать детали.

    Обучающие программы по Apache повсюду. mod_wsgi очень прост; как только вы поймете, как работает Apache, mod_wsgi становится очевидным.

  4. Так как у вас все работает, вероятно, вы знаете о HTML и CSS. Это важные навыки, но они, вероятно, уже есть.

  5. Поскольку у вас все работает, вы также можете многое знать об управлении конфигурацией и о том, как контролировать изменения. Это не очевидно, и многие люди делают это неправильно. Если вы не знаете о CM, вы должны найти некоторые книги или статьи по управлению конфигурацией и управлению изменениями.

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

  7. Отслеживание ошибок,Отчеты о проблемах, запросы функций и другие навыки управления также имеют важное значение.Я не могу сказать, есть ли они у вас или нет.Или какие инструменты вы используете для этого.Если вы работаете самостоятельно, вам не нужно много формальностей.Тем не менее, это критически важные навыки, даже если вы разработчик из одного человека.Sticky-Notes на вашей рабочей станции может работать.Важны навыки управления ошибками и функциями.

2 голосов
/ 08 января 2011

django-nonrel позволяет запускать Django в Google AppEngine: http://www.allbuttonspressed.com/projects/django-nonrel

Кроме того, существует несколько облачных предложений типа djangy https://www.djangy.com/

С обоими вариантами вы можете сосредоточиться на программировании на Django и Python, и вам не нужно заботиться о сисадмине.

На домашней странице django есть очень хорошее руководство, чтобы начать разработку django: http://docs.djangoproject.com/en/1.2/intro/tutorial01/

2 голосов
/ 08 января 2011

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

Что касается перехода в Джанго из AppEngine. Там не так много, что по-другому. То, как вы определяете модели, схоже, но имеет разные типы для определения. Как вы упомянули, хостинг является еще одним соображением.

Должно быть много вариантов хостинга (mod_wsgi - то, что вам нужно) на основе Apache. В частности, Django пользуется популярностью, и хостинг обычно появляется для популярных фреймворков.

Не думаю, что вам нужно знать слишком много сисадминов. Все это будет зависеть от типа хостинга, который вы можете найти. То же самое касается базы данных. Хостинг-провайдеры обычно предлагают предварительно настроенные базы данных, поэтому вам не нужно слишком беспокоиться об этом.

Django, наряду со многими другими средами, предоставляет ORM (Object Relational Mapper), который абстрагируется от необходимости писать SQL, вызывая методы для объектов и получая доступ к их свойствам. Я бы посоветовал изучить немного SQL, чтобы понять его как минимум.

Урок Django превосходен! Если вы решите пойти по маршруту Джанго, я очень рекомендую проработать все это. Сервер разработки поставляется в комплекте, поэтому вы можете испытать свою работу мгновенно, не беспокоясь о провайдере. Если у вас есть что-то, чем вы хотите поделиться с миром, тогда вы можете беспокоиться о хостинге.

Я начал использовать Windows для разработки Django, и это было довольно легко. Объем работы с командной строкой, который вам нужно сделать, минимален. В самом деле. Вам не о чем беспокоиться, так как учебник охватывает все около 4 команд, которые вам нужно знать.

Хостинг Django предоставляет ссылки на хостинг-провайдеров, хотя я не уверен, насколько актуален этот список.

Начать работать в Django довольно просто. Как только вы захотите провести его, потребуется немного больше работы, но это может произойти позже. Трение минимально. Следуйте инструкциям, они проведут вас через запуск сервера, настройку базы данных (бесплатно поставляется в комплекте) и кодирование вашего первого приложения.

2 голосов
/ 08 января 2011

Что заставляет вас думать, что вы заблокированы на одной платформе?Знаете ли вы, что Google App Engine SDK является открытым исходным кодом?Кроме того, есть университеты и другие организации, которые работают над созданием платформ, которые будут использовать App Engine SDK вне контекста Google?Amazon EC2 также может использовать SDK App Engine в ограниченном объеме.Я бы сказал, что блокировка - это, возможно, не то слово, которое нужно использовать.

Кроме того, я считаю, что AppEngine будет продолжать улучшаться со временем.Google является лидером Интернета;они сделали великие дела и будут продолжать это делать.Я верю, что любой, кто придерживается своей платформы в качестве службы, получит эти огромные преимущества в ближайшие годы.

Если ваши рассуждения о переезде носят чисто академический характер, я бы предложил начать новый проект.Перемещение SDK AppEngine похоже на переключение с одного фреймворка на другой в уже созданном приложении.Как и в случае с любой платформой или платформой, для успешного переноса приложения с платформы A на платформу B. необходимо учитывать зависимости, которые необходимо устранить.

1 голос
/ 09 января 2011

Привет, Том, Я предлагаю разумную оценку, которую вы можете сделать, это тщательно перечислить преимущества и недостатки выбора.

Я не жалею о том, что сервер физической стойки (2006-07) был перенесен на виртуальный хостинг (2008) и теперь переведен в GAE (2009-текущий). Видя скорость, новые функции добавляются в GAE, а экономическая эффективность - еще одна причина остаться. Я согласен с тем, что django может потребоваться больше вещей, таких как предварительный просмотр формы и проверка формы с помощью GAE, которые трудно или слишком сложно настроить.

Я попробовал RoR и вскоре подумал, что RoR требует больше кода, чтобы сделать то же самое, что может GAE с меньшим количеством кода. Также с GAE у вас нет абсолютно никакого оборудования, которое может сломаться. Если вы переходите на сервер в стойке или на виртуальный хостинг, где есть места, вы можете получить хостинг на 5 ГБ бесплатно, но у вас нет плана, когда у вас заканчивается 5 ГБ, и вам может потребоваться выполнить миграцию снова, что вам не нужно ,

MySQL существует уже более 10 лет и представляет собой совершенно другую систему. Можно сохранить большие двоичные объекты в MySQL, но не кажется ли вам, что GAE имеет гораздо лучше?

Если вы решите перейти на решение с MySQL, вы можете экспортировать свои данные из GAE и импортировать их в MySQL с помощью такого инструмента, как Approcket .

С уважением / Niklas R

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