أفضل 40 مجوهرات روبي لا يمكننا العيش من دونها

في الأصل تم نشر هذا المقال على مدونة Codica.

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

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

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

جوهرة روبي: ما وراء ذلك؟

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

تحتوي هذه المكتبات على وحدة تخزين خاصة بها تسمى RubyGems ، ومدير الحزم - محزم الأحجار الكريمة. كلاهما يتضمن أدوات للتعامل بسهولة مع تثبيت الأحجار الكريمة وخادم لتوزيعها. تم إصدار الإصدار الأول من RubyGems في عام 2004.

المجتمع القوي هو أحد أصول روبي. يجد عشاق روبي الأكثر نشاطًا حلولًا بيد واحدة ويقومون بتنفيذها في الكود. ثم يقومون بدمج هذه المكتبات في مصدر مفتوح ، وهنا تبدأ حياة الأحجار الكريمة.

بحلول اللحظة التي تم فيها إنشاء هذه المقالة ، كان إجمالي عدد الأحجار الكريمة يزيد على 148،782.

المصدر: Rubygems.org

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

توب روبي الجواهر التي نستخدمها

سواء كنا نبني MVP لبدء التشغيل أو إعادة هيكلة منصة التحليلات المالية متعددة المجالات ، فإن روبي الأحجار الكريمة تخدمنا كخلفية قوية.

لقد أعددنا قائمة بأحجار الياقوت الرائعة ، والتي تعد جزءًا صغيرًا من جميع الأحجار الكريمة التي تساعدنا في بناء منتجات رائعة.

جودة الرمز

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

Rubocop هي أداة لتحليل وتنسيق رمز ثابت روبي. من خارج الصندوق ، سوف يفرض العديد من الإرشادات المحددة في دليل Ruby Style Guide. RuboCop مرن للغاية ويمكن تعديل معظم جوانب سلوكه من خلال خيارات التكوين المختلفة. بصرف النظر عن الإبلاغ عن مشاكل في التعليمات البرمجية الخاصة بك ، يمكن RuboCop أيضا إصلاح بعض المشاكل لك تلقائيا.

Overcommit جوهرة لتكوين Git hooks. انه لامر رائع للحفاظ على جودة رمز عالية. لأنها تتيح ضبط السنانير بوابة جيت لإطلاق linters قبل كل التزام.

التصحيح

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

Better_errors هي جوهرة لإظهار الأخطاء. يعرض معلومات مفيدة حول خطأ وله تأثير مرئي ممتاز. يستبدل Better_errors صفحة خطأ Rails القياسية. يتم تطبيقه أيضًا خارج Rails في أي تطبيق Rack مثل الوسيطة Rack.

Byebug عبارة عن مصحح أخطاء سهل الاستخدام وغني بالميزات لـ Ruby. تتيح هذه الأحجار الكريمة تنفيذ التعليمات البرمجية بسطر سطري ، والإيقاف المؤقت بين المهام وتنفيذ التعليمات البرمجية ، وتغيير المتغيرات أثناء التنقل.

اختبارات

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

يقترح RSpec تطوير سلوك مدفوع لروبي. توفر الأحجار الكريمة معايير لاختبار تطبيقات Ruby on Rails. إنه يقدم DSL أكثر قابلية للقراءة ، مقارنةً بمكتبة TestUnit القياسية للاختبار. بعد ذلك ، يتكامل بسهولة مع العديد من الجواهر الأخرى التي تسهل عملية الاختبار.

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

Capybara Screenshot عبارة عن جوهرة لحفظ الصور تلقائيًا في حالة تعطل سيناريو Capybara. جنبا إلى جنب مع Capybara و Cucumber ، RSpec أو Minitest ، فإن الأحجار الكريمة تتيح عرض الكود المصدر والتقاط لقطة شاشة (عند الاقتضاء) لكل فشل في مجموعة اختبار. يقوم بتخزين HTML للصفحة الفاشلة ، وصورة لقطة للشاشة (عند استخدام capybara-webkit ، أو Selenium أو poltergeist). يعد هذا الخيار ذا قيمة كبيرة عندما تحتاج إلى إيجاد مشكلة في الجولات الفاشلة.

Parallel_tests يجعل الاختبارات المكتوبة في TestUnit و RSpec و Cucumber تمر بشكل أسرع في تشغيلها بالتوازي على وحدات المعالجة المركزية المتعددة. لتسريع العملية ، يستخدم الكود جميع نوى الأنظمة. يتم تشغيل الاختبار ويستخدم قواعد بيانات اختبار إضافية. جوهرة تدعم القضبان وغيرها من أطر روبي.

Factory Bot هي مكتبة لإعداد كائنات Ruby كبيانات اختبار. لديها بناء جملة تعريف واضح. تحتفظ المكتبة باستراتيجيات بناء متعددة مثل المثيلات المحفوظة ، والمثيلات غير المحفوظة ، وتجزئة السمات ، والكائنات المتوقفة. كما أنه يوفر الدعم للعديد من المصانع لنفس الفئة (المستخدم ، admin_user) ، بما في ذلك ميراث المصنع.

يوفر Chromedriver_helper سهولة التركيب واستخدام chromedriver. علاوة على ذلك ، فهو بمثابة محول Webdriver لمشروع السيلينيوم في Chromium. يقوم بتثبيت مساعد chromedriver قابل للتنفيذ في مسار جوهرة ، مما يُمكّن السيلينيوم من استدعائه كسائق ويب. عند اللزوم ، سيقوم السيناريو بتنزيل الملف الثنائي ذي الصلة لمنصة ما وتثبيته في ~ /. هنا ، تسمح الأحجار الكريمة لمشاريع معينة حتى بتحديد إصدار chromedriver الذي يريدون تشغيله.

إن Shoulda Matchers عبارة عن جوهرة توفر اختبارات بسيطة من خط واحد لوظائف Rails الشائعة والتي تسرع من كتابة الاختبارات لسعة نموذجية.

Simplecov هي واحدة من الأحجار الكريمة المفيدة للاختبار. يُظهر النسبة المئوية للرمز المغطاة باختبارات الوحدة. وبالتالي ، فإن الأحجار الكريمة تشجع المطورين على كتابة كود تم اختباره بنسبة 100٪ ، مما يزيد من جودته.

يوفر Database Cleaner تغطية رمز لـ Ruby 1.9+ مع مكتبة تكوين قوية ودمج تلقائي للتغطية عبر مجموعات الاختبار. غالبًا ما يتم تطبيقه جنبًا إلى جنب مع RSpec ويستخدم لتنظيف قاعدة بيانات الاختبار عند بدء الاختبارات. يتيح جوهرة ضبط وقت تنظيف قاعدة البيانات: قبل بدء الاختبارات ، قبل / بعد تشغيل كل اختبار.

RSpec :: Retry هي أداة توفر: إعادة المحاولة فشلاً عشوائيًا مثال RSpec. يضيف خيار: لإعادة المحاولة لفشل أنماط RSpec من حين لآخر. إذا كان لدى النموذج خيار: "إعادة المحاولة" ، فسيقوم RSpec بإعادة محاولة مثال العدد المحدد من المرات حتى يعمل النموذج.

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

نشر

يمثل النشر مرحلة مهمة في تطوير الويب ، وهناك مكتبة واحدة تساعدنا على إدارة العملية بسلاسة.

مينا هي أداة النشر السريع وأتمتة الخادم. بالمقارنة مع Capistrano ، وهي أداة التشغيل الآلي للخادم البعيد ، تعمل Mina بشكل أسرع بكثير. يقوم بإنشاء إجراء بأكمله كنص Bash ويقوم بتشغيله عن بُعد في الخادم. على عكس Capistrano ، حيث يتم تشغيل كل أمر على حدة في جلسات SSH الخاصة بهم ، تنشئ Mina جلسة SSH واحدة لكل عملية نشر. أنه يقلل من عبء العمل اتصال SSH.

بالمناسبة ، في Codica قمنا ببناء أداة خاصة بنا لمينا ، والتي تسمى mina-multideploy. يسمح بنشر التطبيقات على عدة خوادم بالتوازي.

المصادقة والتخويل

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

Devise هو حل مصادقة مرن لـ Rails استنادًا إلى Warden. يساعد Devise في إنشاء نظام تحديد لأي مستوى من التعقيد - من المصادقة عبر البريد الإلكتروني وكلمة المرور إلى نظام الإحالة. باختصار ، لديها 10 وحدات ، بما في ذلك:

  • يمكن تأكيده: يرسل رسائل البريد الإلكتروني مع تعليمات التأكيد ويتحقق مما إذا كان قد تم تأكيد الحساب بالفعل أثناء تسجيل الدخول ؛
  • Recoverable: إعادة تعيين كلمة مرور المستخدم وإرسال تعليمات إعادة التعيين ؛
  • يمكن تذكره: يدير إنشاء رمز رمزي وإلغاء تحديد لتذكر المستخدم من ملف تعريف ارتباط محفوظ ؛
  • تتبعها: تتبع حساب تسجيل الدخول ، الطوابع الزمنية وعنوان IP.

جوهرة Ruby-JWT عبارة عن تطبيق Ruby بسيط لمعيار RFC 7519 OAuth JSON Web Token (JWT). كأداة للتحقق من مصادقة المستخدم ، يعتبر أحد أكثر أنظمة نقل المعلومات أمانًا بين الطرفين.

في هذا المخطط ، يتم تكوين خادم تطبيق للتحقق مما إذا كان JWT الوارد هو الذي تم إنشاؤه باستخدام خادم المصادقة.

CanCanCan هو جوهرة إذن فائقة مريحة. يتيح إنشاء أدوار المستخدمين وقواعدهم ومعالجتها في التطبيقات ، مما يوفر مجموعة من المساعدين للعروض ووحدات التحكم. يمكن أن يحتوي ملف capacity.rb في دليل الطراز على تعليمة قابلة للفهم وقراءة مع وصف الحقوق لكل مجموعة مستخدمين. يتفاعل بسلاسة مع الأحجار الكريمة التي توفر مصادقة المستخدمين.

OmniAuth هو نظام مصادقة مرن يستخدم الوسيط Rack. إنها مكتبة تسمح بإنشاء موفري للمصادقة عبر حسابات الشبكات الاجتماعية مثل Google أو Facebook. تحتوي المكتبة بالفعل على قائمة واسعة من مقدمي جاهزة للاستخدام.

تحميل الملفات

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

يعد Carrierwave حلاً ممتازًا لتحميل الملفات ومعالجتها لـ Rails و Sinatra وغيرها من أطر عمل Ruby على الويب. يسمح Carrierwave بإنشاء إصدارات وإضافتها وإزالتها وتحميلها من موقع بعيد. الى جانب ذلك ، لديها خيارات الاختبار وتكوين. تعمل Carrierwave gem مع AWS S3 ، وفي مثل هذه الحالات ، تتلاءم بشكل جيد مع Fog gem ، التي تتكامل مع مجموعة كبيرة ومتنوعة من الخوادم السحابية ، بما في ذلك خوادم Rackspace و Brightbox.

يعمل Carrierwave_backgrounder مع carrierwave. لأنها تتيح نقل معالجة الصور أو الضغط في الخلفية. في الوقت الحالي ، يوفر الدعم لـ Delayed Job و Resque و Sidekiq و SuckerPunch و Girl Friday و Qu و Queue Classic.

MiniMagick بمثابة بديل صغير ل RMagick. جوهرة تسمح للحد من روبي يعالج الذاكرة. يجعلها متاحة لجميع خيارات سطر الأوامر من ImageMagick.

بحث

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

Elasticsearch هو نظام بحث شعبي يستخدم على نطاق واسع في الشركات. تقوم الجوهرة بدمج محرك Elasticsearch في تطبيقات Rails بمجموعتها الكاملة من الميزات ، بما في ذلك البحث عن النص الكامل.

لوحات الادارة

عادةً ما يتطلب إنشاء تطبيق ويب واسع وتزويده إدارة كمية كبيرة من البيانات. تساعد الأدوات المساعدة التالية فريقنا في تطبيق أداة شاملة لإدارة قواعد البيانات.

Activeadmin هو إطار الإدارة لتطبيقات Ruby on Rails. البرنامج المساعد يسمح بإنشاء واجهات أسلوب الإدارة. إنه يفصل بين أنماط تطبيقات الأعمال الشائعة ، ويبسط بشكل كبير تنفيذ الواجهات الأنيقة للمطورين.

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

الأحجار الكريمة أكثر رهيبة لمختلف المهام

وكمكافأة ، سنبرز لك جواهر إضافية قد تجدها ممتعة. سنقوم بإدراجها وفقًا لشعبيتها (عدد من النجوم في جيثب).

Sidekiq هو أداة معالجة خلفية بسيطة وفعالة لروبي. يتم تطبيق مؤشرات الترابط لإدارة العديد من الوظائف في نفس العملية في وقت واحد. على الرغم من أن Sidekiq لا يتطلب Rails ، إلا أنه سيجمع بشكل وثيق مع Rails لتبسيط معالجة الخلفية قدر الإمكان.

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

يوفر Friendly_Id مساعدة كبيرة عند العمل مع الإضافات الدائمة الرابط لـ ActiveRecord. يسمح بإنشاء عناوين URL جيدة المظهر وإدارة سلاسل صديقة للإنسان كما لو كانت معرفات رقمية لنماذج ActiveRecord.

Dotenv-rails هو جوهرة روبي لتحميل متغيرات البيئة من ملف dotfile والذي يمكن أن يكون خارج مجلد المشروع الرئيسي. بهذه الطريقة ، يسمح Dotenv بتخزين بيانات تكوين التطبيق بأمان.

Slim عبارة عن لغة قالب تحاول تقليل بناء الجملة إلى عناصر التعليمات البرمجية الأساسية دون أن تصبح خفية. بدأ كتمرين لمعرفة مقدار ما يمكن إزالته من قالب HTML قياسي (<،> ، علامات الإغلاق ، إلخ). كلما زاد اهتمام الناس بـ Slim ، زادت الوظائف مع مرونة بناء الجملة.

يقوم Draper بإرفاق طبقة كائن موجهة من منطق العرض التقديمي بتطبيق Rails. يساعد Draper في التعامل مع هذه الوظيفة في تدفق المساعدين الإجرائيين أو إضافة المعالجات إلى النماذج. توفر مصممو الزخارف طريقة أكثر فعالية للالتفاف على النماذج من خلال المنطق ذي الصلة بالعرض التقديمي لتنظيم هذه الطبقة من تطبيقاتهم واختبارها.

Redis هي مكتبة مفتوحة المصدر روبي-رخص BSD. يمثل مخزن بنية بيانات في الذاكرة. يتم استخدام جوهرة كقاعدة بيانات وذاكرة التخزين المؤقت وسيط الرسالة. يوفر Redis الدعم لهياكل البيانات مثل السلاسل والتجزئة والقوائم والمجموعات التي تم فرزها باستخدام استعلامات النطاق والصور النقطية والمدونات التشعبية والفهارس الجغرافية المكانية مع استعلامات نصف قطر وتدفقات. تتضمن الأحجار الكريمة النسخ المتماثل المضمّن وبرمجة Lua وإخلاء LRU والمعاملات والعديد من مستويات الثبات على القرص. علاوة على ذلك ، يتيح Redis توفرًا عاليًا عبر Redis Sentinel وتقسيم تلقائي مع Redis Cluster.

يبسط Annotate العمل مع نماذج Rails. يضيف تعليق يلخص المخطط الحالي لملفات النماذج. تجعل هذه الميزة إنشاء التعليمات البرمجية أسهل كثيرًا لأنه لا توجد حاجة للتحقق من ملف مخطط في كل مرة.

ينشئ Pg_search نطاقات باسم ActiveRecord عند تطبيق بحث النص الكامل في PostgreSQL. هو بديل جيد ل Elasticsearch عند استخدام PostgreSQL. الأداة سهلة التكوين. إلى جانب ذلك ، يسمح بتنفيذ الإكمال التلقائي والبحث بواسطة الجمعيات.

يخدم Wicked لإنشاء صفحات خطوة بخطوة (أشكال إنشاء الكائن ، إلخ). الأشرار يسرع ويبسط العمل مع وحدات التحكم.

يوفر Config أسهل طريقة للجمع بين إعدادات بيئة yaml المتعددة مع Rails و Sinatra و Pandrino وغيرها من Ruby. إنه يوفر حلاً جذابًا وسهلاً للإدارة البسيطة للمعايير الخاصة بالبيئة.

مهام I18n- جوهره للعمل مع الترجمة في التطبيق. يمكن تطبيقه مع أي مشروع يستخدم جوهرة Ruby I18n وهو افتراضي في Rails. يوفر واجهة للعمل مع اللغات ، ويساعد في العثور على الترجمات المفقودة ، وتطبيع الملفات مع الترجمات ، وإضافة ترجمات جديدة عبر Google translate API.

Money_rails جوهره عظيمة للعمل مع العملات. لأنها تتيح أتمتة التحديثات في أسعار العملات وتحويل الأسعار إلى العملة المطلوبة.

الانطباعية يسمح عد مشاهدات الصفحة. علاوة على ذلك ، فإنه يتيح تسجيل مرات مشاهدة الصفحة عدة مرات لكل طلب وإسنادها إلى نموذج. والغرض منه هو تقديم إحصائيات قابلة للتخصيص ، وإتاحتها على الفور في التطبيق ، على عكس Google Analytics وسحب البيانات من خلال واجهة برمجة التطبيقات. الى جانب ذلك ، يسمح الانطباعي بتعيين رسائل مخصصة لعرض الصفحة.

Route_translator هي أداة للمساعدة في إدارة ترجمات طرق التطبيق. لديها تنسيق القاموس بسيط. في البداية ، كان شوكة المكون الإضافي translate_routes ولكنه تحول لاحقًا إلى أداة ترجمة كاملة.

ليستنتج

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

تساعدنا الأحجار الكريمة التي أدرجناها في هذه المقالة في بناء منتجات رائعة لمختلف المجالات ، مثل التجارة الإلكترونية والسفر والتمويل والاستثمار وغيرها.

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

نأمل أن تساعدك قائمة الجواهر الخاصة بـ Ruby on Rails في مشاريعك.

نشرت أصلا على www.codica.com.

المزيد عن روبي أون ريلز:

هل أعجبنا المحتوى؟ اكتشف المزيد على موقعنا: