ميرب

Merb هو إطار عمل ويب متوقف عن العمل، يعتمد على نموذج العرض والتحكم، مكتوب بلغة Ruby ، ويُعرف بأنه سلف لـ Rails 3. وقد ساهم في زيادة التركيز على السرعة والنمطية في Rails 3. [ 4 ] [ 5 ] اسم Merb هو اختصار لكلمتي " Mongrel " و" Erb ". [ 6 ]

مقدمة لـ Rails 3 ودمجها معه

بدأ Merb كتطبيق "نظيف" [ 7 ] لمجموعة أدوات التحكم في Rails ، لكنه تطور ليشمل العديد من الأفكار التي انحرفت عن روح Rails ومنهجيتها في ذلك الوقت، وأبرزها نمطية المكونات ، وتصميم واجهة برمجة التطبيقات القابلة للتوسيع، وقابلية التوسع الرأسي . طُوّر Merb بواسطة عزرا زيغمونتوفيتش ويهودا كاتز. أُضيفت معظم هذه الإمكانيات إلى Rails خلال عملية دمج Rails 3 وMerb. [ 8 ] [ 9 ] أُصدر Merb لأول مرة في مؤتمر RubyConf عام 2008 [ 10 ] ، وتوقف تطويره منذ ذلك الحين؛ لذا، يُعد Rails 3 خليفةً لكلٍ من Rails 2 وMerb.

الاختلافات عن روبي أون ريلز

حاول تصميم Merb معالجة العديد من الانتقادات الموجهة إلى Rails 2:

  • عدم وجود نمطية في تصميم المكونات ( تصميم متجانس )
  • عدم وجود واجهة برمجة تطبيقات قابلة للتوسيع
  • عدم القدرة على التوسع الرأسي

نمطية التصميم

اقتصرت بنية Merb في تصميم MVC على طبقة المتحكم فقط ، واستخدمت مجموعة من الإضافات التكميلية والاختيارية لتجميع التطبيقات. تمثلت نقاط التكامل الرئيسية في واجهة خادم الويب، وطبقة النموذج، وطبقة العرض، وامتدادات المتحكم والإضافات. تضمنت بنية تطبيق Merb الافتراضية Datamapper للنماذج، وERB للعروض، و Rack وMongrel كطبقة لخادم الويب. [ 11 ] [ 12 ]

واجهة برمجة تطبيقات محددة جيدًا

قبل دمج Merb مع Rails 3، افتقرت Rails إلى واجهة برمجة تطبيقات عامة وموثقة جيدًا للإضافات والملحقات، مما أدى إلى مشاكل عند تعطل التعديلات البرمجية التي تُجريها الملحقات نتيجةً لتغييرات Rails. مع دمج Rails 3 مع Merb، اكتسبت Rails واجهة برمجة تطبيقات عامة محددة مع مجموعة اختبارات، [ 9 ] مما منح المستخدمين ومطوري الملحقات واجهة برمجة تطبيقات أوضح وأكثر استقرارًا للبناء عليها، مما قلل من أعطال الملحقات بين الإصدارات. [ 8 ]

الأداء وقابلية التوسع

حظيت بعض الإصدارات المبكرة من Rails بسمعة سيئة بسبب ضعف أدائها، ويعود ذلك غالبًا إلى ارتباك المطورين بشأن استعلامات ActiveRecord. صرّح ديفيد هاينماير هانسون ، مبتكر Rails، بأن Merb أعاد كتابة العديد من أجزاء Rails الأساسية لتحسين سرعتها، [ 8 ] ودمج هذه التغييرات من Merb في دمج Rails 3، واعدًا المستخدمين بأن "Rails 3 سيحظى بكل الاهتمام الذي يشتهر به فريق Merb من حيث الأداء". [ 8 ]

مراجع

  1. زيغمونتوفيتش، عزرا. "لا يوجد كود أسرع من لا يوجد كود" . تويتر . تم الاطلاع عليه في 2 أبريل 2015 .
  2. جروسنباخ، جيفري. "أصل عبارة: "لا يوجد كود أسرع من لا يوجد كود"." . تويتر . عزرا زيجمونتوفيتش . تم الاسترجاع في 2 أبريل 2015 .
  3. "1.1.3" . GitHub .
  4. بون، بول (18 سبتمبر 2008). "مقارنة أداء Rails/Merb (على mongrel وjruby وtomcat وglassfish)" . mindbucket.com . مؤرشف من الأصل في 14 يوليو 2011.
  5. "ملاحظات إصدار Ruby on Rails 3.0" . أدلة Ruby on Rails . تم الاطلاع عليه بتاريخ 18 يوليو 2020 .
  6. زيغمونتوفيتش، عزرا (18 أكتوبر 2006). "ANN: Merb, Mongrel+Erb" . osdir.com] . مؤرشف من الأصل في 31 ديسمبر 2009.
  7. ^ عزرا زيجمونتوفيتش (23 ديسمبر 2008). "ميرب * هو * القضبان" .
  8. 1 2 3 4 هانسون، ديفيد هاينماير (23 ديسمبر 2008). "دمج Merb في Rails 3!" . weblog.rubyonrails.org . تم الاطلاع عليه بتاريخ 18 يوليو 2020 .
  9. 1 2 كاتز، يهودا (23 ديسمبر 2008). "دمج السكك الحديدية و Merb" . yehudakatz.com .
  10. أيمونيتي، مات (9 نوفمبر 2008). "إصدار Merb 1.0" . Merbist .
  11. "merb-core gem dependencies" . 23 مارس 2010.
  12. "merb gem dependencies" . 23 مارس 2010.
  • موقع Merbivore الرسمي