سؤال

أتطلع إلى القيام بمشروع جانبي صغير جدًا وسريع وقذر.تعجبني حقيقة أن Google App Engine يعمل على Python مع دمج Django فيه - وهذا يمنحني عذرًا لتجربة هذا النظام الأساسي...ولكن سؤالي هو هذا:

هل استخدم أي شخص محرك التطبيق لأي شيء آخر غير مشكلة الألعاب؟أرى بعض الأمثلة الجيدة للتطبيقات المتوفرة، لذا أفترض أن هذا جيد بما يكفي للصفقة الحقيقية، لكنني أردت الحصول على بعض التعليقات.

أي ملاحظات نجاح/فشل أخرى ستكون رائعة.

هل كانت مفيدة؟

المحلول

لقد جربت محرك التطبيق لتطبيق مراقبة الزلازل الصغير الخاص بيhttp://quakewatch.appspot.com/

كان هدفي هو رؤية إمكانيات محرك التطبيقات، لذا إليك النقاط الرئيسية:

  1. لا يأتي افتراضيًا مع Django ، وله إطار عمل خاص به وهو Pythonic لديه مرسل URL مثل Django ويستخدم قوالب Django ، لذلك إذا كان لديك Django Exp.ستجد أنه سهل الاستخدام
  2. لا يمكنك تنفيذ أي عملية طويلة المدى على الخادم ، ما تفعله هو الرد على الطلب ، والتي يجب أن تكون سريعة وإلا فإن Appengine سوف يقتلها ، لذلك إذا كان تطبيقك يحتاج إلى الكثير من معالجة الواجهة الخلفية ، فليس هو أفضل طريقة وإلا فسيتعين عليك القيام بالمعالجة على خادم خاص بك
  3. يحتوي تطبيق QuakeWatch الخاص بي على ميزة اشتراك ، فهذا يعني أنه كان عليّ إرسال آخر زلزال عبر البريد الإلكتروني كما هو الحال ، لكن لا يمكنني تشغيل عملية خلفية في محرك التطبيق لمراقبة حل الزلازل الجديد هنا هو استخدام خدمة الجزء الثالث مثل Pingablity.com اتصل بواحدة من صفحتك والتي تنفذ جهاز البريد الإلكتروني للاشتراك ، ولكن هنا يجب عليك أيضًا أن تهتم بأنك لا تقضي الكثير من الوقت هنا أو تقسيم المهمة إلى عدة قطع
  4. إنه يوفر إمكانات نمذجة مثل Django ولكن الواجهة الخلفية مختلفة تمامًا ولكن بالنسبة لمشروع جديد لا ينبغي أن يكون الأمر مهمًا.

لكن بشكل عام أعتقد أنه ممتاز لإنشاء تطبيقات لا تحتاج إلى الكثير من المعالجة في الخلفية.

يحرر:الآن طوابير المهام يمكن استخدامها لتشغيل معالجة الدفعات أو المهام المجدولة

يحرر:بعد العمل/إنشاء تطبيق حقيقي على GAE لمدة عام، رأيي الآن هو أنه ما لم تكن تنشئ تطبيقًا يحتاج إلى التوسع إلى مليون ومليون مستخدم، فلا تستخدم GAE.تعد صيانة وتنفيذ المهام التافهة في GAE بمثابة صداع بسبب الطبيعة الموزعة، لتجنب تجاوز الأخطاء في الموعد النهائي، أو حساب الكيانات أو إجراء استعلامات معقدة يتطلب تعليمات برمجية معقدة، لذلك يجب أن يلتزم التطبيق المعقد الصغير بـ LAMP.

يحرر:يجب تصميم النماذج خصيصًا مع الأخذ في الاعتبار جميع المعاملات التي ترغب في إجرائها في المستقبل، لأنه يمكن استخدام الكيانات الموجودة في نفس مجموعة الكيانات فقط في المعاملة مما يجعل عملية تحديث مجموعتين مختلفتين كابوسًا على سبيل المثال.من المستحيل تحويل الأموال من المستخدم 1 إلى المستخدم 2 في المعاملة ما لم يكونوا في نفس مجموعة الكيانات، ولكن جعلهم نفس مجموعة الكيانات قد لا يكون الأفضل لأغراض التحديث المتكرر....اقرا هذا http://blog.notdot.net/2009/9/Distributed-Transactions-on-App-Engine

نصائح أخرى

أنا أستخدم GAE لاستضافة العديد من التطبيقات ذات حركة المرور العالية.مثلًا في حدود 50-100 طلب/ثانية.إنه رائع، لا يمكنني أن أوصي به بما فيه الكفاية.

تجربتي السابقة في تطوير الويب كانت مع Ruby (Rails/Merb).كان تعلم بايثون سهلاً.لم أعبث مع Django أو Pylons أو أي إطار عمل آخر، لقد بدأت للتو من أمثلة GAE وقمت ببناء ما أحتاجه من مكتبات تطبيقات الويب الأساسية المتوفرة.

إذا كنت معتادًا على مرونة SQL، فقد يستغرق مخزن البيانات بعض الوقت للتعود عليها.لا شيء صادم للغاية!التعديل الأكبر هو الابتعاد عن JOINs.عليك أن تتخلص من فكرة أن التطبيع أمر بالغ الأهمية.

بن

أحد الأسباب المقنعة التي واجهتني لاستخدام Google App Engine هو تكامله مع Google Apps لنطاقك.يسمح لك بشكل أساسي بإنشاء تطبيقات ويب مخصصة ومُدارة تقتصر على عمليات تسجيل الدخول (الخاضعة للرقابة) لنطاقك.

كانت معظم تجربتي مع هذا الرمز هي إنشاء تطبيق بسيط لتتبع الوقت/المهام.كان محرك القالب بسيطًا ولكنه جعل التطبيق متعدد الصفحات سهل الاستخدام للغاية.تعد واجهة برمجة تطبيقات تسجيل الدخول/توعية المستخدم مفيدة بالمثل.لقد تمكنت من إنشاء نموذج للصفحة العامة/الصفحة الخاصة دون الكثير من المشكلات.(يمكن للمستخدم تسجيل الدخول لرؤية الصفحات الخاصة.تم عرض مستخدم مجهول على الصفحة العامة فقط.)

كنت قد دخلت للتو إلى جزء مخزن البيانات من المشروع عندما تم سحبي بعيدًا من أجل "العمل الحقيقي".

لقد تمكنت من إنجاز الكثير (ما زال لم يتم إنجازه بعد) في فترة زمنية قصيرة جدًا.وبما أنني لم أستخدم بايثون من قبل، فقد كان ذلك ممتعًا بشكل خاص (لأنها كانت لغة جديدة بالنسبة لي، وأيضًا لأن التطوير كان لا يزال سريعًا على الرغم من اللغة الجديدة).لقد واجهت القليل جدًا مما دفعني إلى الاعتقاد بأنني لن أتمكن من إنجاز مهمتي.بدلا من ذلك لدي انطباع إيجابي إلى حد ما عن الوظائف والميزات.

هذه هي تجربتي معها.ربما لا يمثل هذا أكثر من مجرد مشروع لعبة غير مكتمل، ولكنه يمثل تجربة مستنيرة للمنصة، وآمل أن يساعد ذلك.

فكرة "محرك التطبيقات الذي يقوم بتشغيل Django" مضللة بعض الشيء.يستبدل App Engine طبقة نموذج Django بأكملها، لذا كن مستعدًا لقضاء بعض الوقت في التأقلم مع مخزن بيانات App Engine الذي يتطلب طريقة مختلفة لنمذجة البيانات والتفكير فيها.

لقد استخدمت GAE للبناء http://www.muspy.com

إنها أكثر قليلاً من مجرد مشروع لعبة ولكنها ليست معقدة للغاية أيضًا.ما زلت أعتمد على بعض المشكلات التي يجب أن تعالجها Google، لكن تطوير الموقع بشكل عام كان تجربة ممتعة.

إذا كنت لا ترغب في التعامل مع مشكلات الاستضافة، وإدارة الخادم، وما إلى ذلك، فيمكنني بالتأكيد أن أوصي به.خاصة إذا كنت تعرف Python وDjango بالفعل.

أعتقد أن App Engine رائع جدًا للمشاريع الصغيرة في هذه المرحلة.هناك الكثير مما يمكن قوله عن عدم الحاجة إلى القلق أبدًا بشأن الاستضافة.تدفعك واجهة برمجة التطبيقات (API) أيضًا في اتجاه إنشاء تطبيقات قابلة للتطوير، وهي ممارسة جيدة.

  • تصحيح محرك التطبيق هي طبقة جيدة بين Django وApp Engine، مما يتيح استخدام تطبيق المصادقة والمزيد.
  • لقد وعدت Google باتفاقية مستوى الخدمة ونموذج التسعير بحلول نهاية عام 2008.
  • يجب أن تكتمل الطلبات في 10 ثوانٍ، ويجب إكمال الطلبات الفرعية لخدمات الويب في 5 ثوانٍ.وهذا يفرض عليك تصميم تطبيق سريع وخفيف الوزن، وتفريغ المعالجة الجادة إلى منصات أخرى (على سبيل المثال.خدمة مستضافة أو مثيل EC2).
  • المزيد من اللغات تأتي قريبا!لن تقول Google أيًا من :-).أموالي على جافا بعد ذلك.

تمت الإجابة على هذا السؤال بشكل كامل.وهو أمر جيد.ولكن ربما هناك شيء واحد يستحق الذكر.يحتوي محرك تطبيقات Google على مكون إضافي لبرنامج Eclipse IDE وهو أمر ممتع للعمل معه.

إذا كنت قد قمت بالفعل بتطوير برنامج Eclipse، فسوف تكون سعيدًا جدًا بذلك.

للنشر على موقع الويب الخاص بمحرك تطبيقات Google، كل ما أحتاج إلى فعله هو النقر فوق زر صغير - يحمل شعار الطائرة - ممتاز.

ألقِ نظرة على لعبة SQL, ، فهو مستقر جدًا وقد دفع بالفعل حدود حركة المرور عند نقطة واحدة بحيث تم اختناقه بواسطة Google.لم أر سوى أخبار جيدة عن App Engine، بخلاف استضافة تطبيقك على خوادم يتحكم فيها شخص آخر بشكل كامل.

لقد استخدمت GAE لإنشاء تطبيق بسيط يقبل بعض المعلمات والتنسيقات وإرسال البريد الإلكتروني.لقد كانت بسيطة وسريعة للغاية.لقد قمت أيضًا بوضع بعض معايير الأداء على خدمات مخزن بيانات GAE وmemcache (http://dbaspects.blogspot.com/2010/01/memcache-vs-datastore-on-google-app.html ).انها ليست بهذه السرعة.رأيي هو أن GAE عبارة عن منصة جادة تفرض منهجية معينة.أعتقد أنها ستتطور إلى منصة قابلة للتطوير حقًا، حيث لا يُسمح بالممارسات السيئة.

لقد استخدمت GAE لموقع ألعاب الفلاش الخاص بي، العاب ملتحية.GAE هي منصة رائعة.لقد استخدمت قوالب Django وهي أسهل بكثير من الأيام القديمة لـ PHP.يأتي مزودًا بلوحة إدارة رائعة، ويمنحك سجلات جيدة حقًا.يختلف مخزن البيانات عن قاعدة بيانات مثل MySQL، لكن التعامل معه أسهل كثيرًا.كان إنشاء الموقع سهلاً ومباشرًا، ولديهم الكثير من النصائح المفيدة على الموقع.

لقد استخدمت GAE وDjango لبناء تطبيق فيسبوك.إستعملت http://code.google.com/p/app-engine-patch كنقطة انطلاق لي لأنه يدعم Django 1.1.لم أحاول استخدام أي من أوامر manager.py لأنني افترضت أنها لن تعمل، لكنني لم ألقي نظرة عليها حتى.يحتوي التطبيق على ثلاثة نماذج ويستخدم أيضًا pyfacebook، ولكن هذا هو مدى التعقيد.أنا بصدد إنشاء تطبيق أكثر تعقيدًا وبدأت في التدوين عنه http://brianyamabe.com.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top