سؤال

تبحث عن آراء حول تعديل تطبيقات الويب. يوجد بالفعل معظم التطبيقات بغض النظر عن اللغة Backend DB ودعم التعادل من خلال خادم تطبيق الويب الخاص بها (Apache، IIS، Lighttp، إلخ) ولكن الكثير من المطورين الذين تعاملتهم لديهم مشاكل في القادمة مع استخدام memcached أو أي شيء خارج مساحات عملية الويب الخاصة بتطبيق الويب.

هو تعديل تطبيق ويب كشيء جيد شيء كما أعتقد أو هل هناك شيء أفتقده يسبب أي شخص من مطوري الأب إلى CTO يتردد بنقل أجزاء محددة من منطق الأعمال من نهاية ويب واجهة الويب خدمات الخلفية المتخصصة؟

على سبيل المثال، منذ بضع سنوات، اسقطت في اجتماع تصميم المشروع لموقع مرور مرتفع للغاية عندما اقترحنا أن نقترح عملية تسجيل الدخول المكثفة في عملية الإطار الأمامي وتحويلها إلى تطبيق خدمة شبه قابل للتجميع في الخلفية. بالنسبة لي كانت الفوائد انفصال نظافة من التعليمات البرمجية والقدرة على إعادة استخدام منطق ACL في أماكن متعددة باستخدام الراحة / JSON كجسر بين القول PHP & Python.

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

لذلك لتقصيرها، ما هي شركة CON's & OR PRO لكسر التطبيقات الكبيرة في عمليات مستقلة ولكن تعاونية (وليس المواضيع أو الطلبات الفرعية). mysql، memcache، عملية خدمة مماثلة كبيرة ... ولكن لماذا لا أي شيء آخر؟ كيف تنخفض هذا المسار "معقد للغاية"؟

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

المحلول

حسنا، أحيانا "معقدة للغاية" تعني "لا أريد أن أفكر خارج منطقة كونفورت."

الفكرة الأساسية تبدو جيدة - - أنت تتحدث عن الهندسة المعمارية الموجهة نحو الخدمة المعقولة هنا.

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

مشكلة أخرى هي أنه قد يصعب تصحيح الأخطاء، لأنه يحدث بشكل أكثر ديناميا.

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

نصائح أخرى

أنا من محبي فصل وظيفة منطق الخادم / الأعمال الأساسية من رمز تطبيق الويب. هذا لبضع أسباب مختلفة:

  1. يمكنك التحكم بشكل أفضل في منطق العمل. لن تكون هناك طريقة لخلط هذا مع رمز واجهة المستخدم الرسومية وإنشاء فوضى. تريد الاحتفاظ بجميع المنطق التجاري منفصلة حتى تتمكن من إجراء واجهة برمجة تطبيقات لاحقا لاستدعاء وظائف التعليمات البرمجية وليس الأمل في أن عدم وجود منطق أعمال في طريقه إلى رمز GUI.
  2. يمينا من Get-Go، يجب عليك تصميم واجهة برمجة تطبيقات جيدة يجب عليك استخدام نفسك للتواصل مع الخادم الخاص بك من العميل. يمكن للعميل أن يكون واجهة الويب أو يمكن أن يكون مستخدم بعيد.
  3. استقرار. يمكن بسهولة كتابة رمز الويب واجهة المستخدم الرسومية خطأ ويستهلك الكثير من الذاكرة، مما يؤدي إلى أسفل التطبيق بأكمله.
  4. لتوسيع نطاق يمكنك نقل هذه المكونات المنفصلة إلى خوادم مختلفة. إذا كنت تستخدم نظام التخزين المؤقت يسمح بالفعل بتوسيع نطاق التوسع بسيطة مثل إضافة المزيد من خوادم التخزين المؤقت.
  5. لقد وجدت أن تحديثات التطبيق مصنوعة في أغلب الأحيان إلى رمز واجهة المستخدم الرسومية، لذلك لا يجب أن تؤخذ الخدمة الأساسية في معظم الوقت.
  6. حماية. يمكنك التأكد من أن رمز الأمان يتم تطبيقه في رمز الخادم، لذلك إذا كان شخص ما يستخدم واجهة برمجة التطبيقات الخاصة بك، فلن يتمكنوا من تجاوز أي رمز أماني الذي جعل طريقه إلى رمز واجهة المستخدم الرسومية.

يحتوي نظامنا على خدمة "المحرك" الأساسية المنفذة كطلب جافا. يتم كتابة تطبيق الويب أيضا في اتصالات Java و (حاليا) عبر RMI. موقعنا / التطبيق ينمو ولم يكن لدينا حتى الآن البدء في استخدام خدمة التخزين المؤقت مثل memcached أو jcs.

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