Döngüde Tekrarlanan İş (ARCH6072)
Anahtar ruby.performance.repeated-work-in-loop · Önem warning · Kategori performance
Girdileri döngü değişkenine bağlı olmayan bir hesaplama her yinelemede tekrar çalıştırılırsa boşa iş yapılır. Bu sabit ifadeyi döngünün dışına taşıyın.
Hatalı
Bölüm başlığı “Hatalı”def filter(items, config) items.select do |item| item.score > config.thresholds.fetch(:min) endenddef filter(items, config) min = config.thresholds.fetch(:min) items.select { |item| item.score > min }endDüzeltme
Bölüm başlığı “Düzeltme”Döngü değişmezi (loop-invariant) ifadeleri bir kez hesaplayıp döngüden önce bir değişkene atayın.