Scorciatoie essenziali per la produttività, pattern per ottimizzare la memoria e trucchi di debug per lo sviluppo quotidiano in Rails.
Ottimizzazioni di Query e Memoria
1. pluck vs map
pluck interroga direttamente le colonne del database senza istanziare oggetti modello ActiveRecord in memoria:
# LENTO: Istanzia 10.000 oggetti User in memoria
User.all.map(&:email)
# VELOCE: Seleziona solo la colonna email come array di stringhe
User.pluck(:email)
2. Elaborazione a lotti con find_each
Evita di caricare tabelle enormi in memoria tutte in una volta:
# Carica in blocchi da 1.000 record
User.find_each(batch_size: 1000) do |user|
user.sync_with_crm
end
Scorciatoie di Produttività nella Console
# Accedi al risultato dell'ultima espressione valutata
user = User.find(1)
_ # Restituisce l'oggetto user
# Misura il tempo di esecuzione nella console
Benchmark.ms { 1000.times { User.count } }
# Ricarica il codice dell'applicazione senza riavviare la console
reload!
Aggiornamento dei timestamp (touch)
Aggiorna il timestamp updated_at del modello genitore quando un'associazione figlia cambia:
class Comment < ApplicationRecord
belongs_to :article, touch: true
end