ما هي السيناريوهات التي يمكن فيها استخدام سيناترا أو ميرب؟

StackOverflow https://stackoverflow.com/questions/732560

  •  06-09-2019
  •  | 
  •  

سؤال

أنا أتعلم ريلز وليس لدي أي فكرة عن سيناترا وميرب.كنت أتساءل ما هي المواقف التي يمكنك فيها استخدام Merb/Sinatra.

شكرا لملاحظاتك!

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

المحلول

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

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

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

نصائح أخرى

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

يعتبر سيناترا أيضًا ممتازًا للأجزاء المجزأة من التطبيق، على سبيل المثال الواجهة الأمامية لحزمة الإحصائيات.أو شيء من هذا القبيل ErrCount, ، وهو مجرد عداد ضرب بسيط حقًا.

لذا فكر في تطبيقات الويب الخفيفة والسريعة والمبسطة للغاية (على الرغم من أن التعقيد هو اختيارك) عند استخدام سيناترا.

بالطريقة التي تسير بها الأمور، سيكون هذا سؤالًا مثيرًا للجدل قريبًا.

كما ذكرنا سابقًا، سيكون Merb 2.0 و Rails 3.0 هو نفس الشيء.تعمل فرق Merb و Rails الأساسية المدمجة حديثًا بالفعل على تحقيق ذلك.لا أعرف ما إذا كانوا ما زالوا يخططون لإصدار (ربما نسخة تجريبية) بواسطة RailsConf في مايو، لكنه سيحدث بالتأكيد هذا العام.

إذا كنت غير متأكد من استخدام ORM بخلاف ActiveRecord، على سبيل المثال، فيمكنك البدء باستخدام Merb الآن والتحديث عند وصول الإصدار 2.0 (Rails 3.0).في الوقت الحالي، من المقبول عمومًا أن يوفر Merb إطارًا أفضل لتنويع المكونات مقارنة بـ Rails.

يبدو Sinatra بمثابة حل رائع لتطبيق ويب يتميز بتعقيد واجهة منخفض ورمز مستوى نموذجي أقل إلى حد ما مما هو معتاد بالنسبة لـ Merb/Rails.سيكون تنفيذ واجهات برمجة تطبيقات RESTful المباشرة أحد الاستخدامات الرائعة.أنا أقل اقتناعًا بقيمته عندما يتعلق الأمر بأي كمية من HTML، وحتى أقل اقتناعًا عندما يتعلق الأمر بالقوالب.

مرة أخرى، مع وجود Rails (وبالتالي Merb قريبًا) على رأس Rack، لا يوجد سبب لعدم تضمين تطبيقات Baby Sinatra في الحل:يمكنهم العيش معًا.هناك منشور مدونة يناقش هذا المفهوم بالذات

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