Βασικές συντομεύσεις παραγωγικότητας, μοτίβα βελτιστοποίησης μνήμης και κόλπα εντοπισμού σφαλμάτων για την καθημερινή ανάπτυξη σε Rails.
Βελτιστοποιήσεις ερωτημάτων & μνήμης
1. pluck έναντι map
Το pluck εκτελεί απευθείας ερώτημα στις στήλες της βάσης χωρίς να δημιουργεί αντικείμενα ActiveRecord στη μνήμη:
# ΑΡΓΟ: Δημιουργεί 10.000 αντικείμενα User στη μνήμη
User.all.map(&:email)
# ΓΡΗΓΟΡΟ: Επιλέγει μόνο τη στήλη email ως πίνακα συμβολοσειρών
User.pluck(:email)
2. Μαζική επεξεργασία με find_each
Αποφύγετε τη φόρτωση τεράστιων πινάκων στη μνήμη ταυτόχρονα:
# Φόρτωση σε παρτίδες των 1.000 εγγραφών
User.find_each(batch_size: 1000) do |user|
user.sync_with_crm
end
Συντομεύσεις παραγωγικότητας κονσόλας
# Πρόσβαση στο αποτέλεσμα της τελευταίας έκφρασης
user = User.find(1)
_ # Επιστρέφει το αντικείμενο user
# Μέτρηση χρόνου εκτέλεσης στην κονσόλα
Benchmark.ms { 1000.times { User.count } }
# Επαναφόρτωση κώδικα Rails χωρίς επανεκκίνηση της κονσόλας
reload!
Ενημέρωση χρονικών σημάνσεων (touch)
Ενημέρωση του updated_at του γονικού μοντέλου όταν αλλάζει ένας συσχετισμένος απόγονος:
class Comment < ApplicationRecord
belongs_to :article, touch: true
end