Koleksiyon Yüklemlerini Birleştirme (ARCH6077)
Anahtar ruby.performance.combine-collection-predicates · Önem info · Kategori performance
Ardışık select çağrıları veya boşluk kontrolü için count > 0 gibi ifadeler koleksiyonu birden çok kez gezer. Yüklemleri tek bir geçişte birleştirin.
Hatalı
Bölüm başlığı “Hatalı”def has_recent_admin?(users) users.select(&:admin?) .select(&:recent?) .count > 0enddef has_recent_admin?(users) users.any? { |u| u.admin? && u.recent? }endDüzeltme
Bölüm başlığı “Düzeltme”Ardışık filtreleri tek yükleme birleştirin ve boşluk kontrolünde count > 0 yerine any? kullanın.