اختصارات إنتاجية أساسية، وأنماط تحسين الذاكرة، وحيل تصحيح الأخطاء لمهندسي Rails اليوميين.
تحسينات الاستعلامات والذاكرة
1. pluck مقابل map
يقوم pluck بالاستعلام المباشر عن أعمدة قاعدة البيانات دون إنشاء كائنات نماذج ActiveRecord في الذاكرة:
# بطيء: ينشئ 10000 كائن User في الذاكرة
User.all.map(&:email)
# سريع: يختار فقط عمود البريد الإلكتروني كمصفوفة سلاسل نصية
User.pluck(:email)
2. المعالجة على دفعات باستخدام find_each
تجنب تحميل الجداول الضخمة بالكامل في الذاكرة دفعة واحدة:
# تحميل السجلات على دفعات من 1000 سجل
User.find_each(batch_size: 1000) do |user|
user.sync_with_crm
end
اختصارات إنتاجية سطر أوامر Rails (Console)
# الوصول إلى نتيجة آخر تعبير تم تنفيذه
user = User.find(1)
_ # يُرجع كائن user
# قياس وقت التنفيذ في سطر الأوامر
Benchmark.ms { 1000.times { User.count } }
# إعادة تحميل كود تطبيق Rails دون إعادة تشغيل الـ console
reload!
تحديث الطوابع الزمنية (touch)
تحديث الطابع الزمني updated_at للنموذج الأصلي عند تعديل النموذج التابع:
class Comment < ApplicationRecord
belongs_to :article, touch: true
end