Leggete l'articolo del nostro esperto di Ruby e scoprite perché non è necessario avere sempre questi hashish.
Introduzione
Quando si vuole aggregare qualcosa, molto spesso si usa il metodo 1TP63Insegnare_con_oggetto
o estendere il regolare anello utilizzando #con_oggetto
. Ma nella maggior parte dei casi Sviluppatori Ruby si usa un semplice hash come aggregatore e forse va bene, ma in questo articolo vorrei mostrarvi che non sempre deve essere un hash.
Caso
Si presume che tutti i file siano collocati in una directory (persone
).
Supponiamo di avere quanto segue persone/persone.csv
file:
Nome, Cognome, Età
John,Doe,24
Jane,Dee,45
Josh,Bee,55
Andrea,Boya,34
Andrea,Moore,54
Se vogliamo trovare il totale delle righe e l'età media, possiamo scrivere il seguente script:
E sì, fa il suo dovere, ma la lettura di tale codice è un piacere dubbio. Sembra un livello troppo basso. Possiamo migliorarlo fornendo un aggregatore dedicato per il anello.
Il nostro ciclo sarà quindi come quello che segue:
Penso che sia molto più chiaro.
Sintesi
Abbiamo scritto più codice, ma i dettagli di livello inferiore sono stati estratti in una classe separata. Ora lo script principale si legge molto meglio.
Certo, si può obiettare che l'esempio è troppo semplice per impegnarsi così tanto nella rifattorizzazione, ma suvvia, è solo un esempio ;). Se si dovessero aggregare più dati, questi oggetti aggregatori sono davvero la via di salvezza.
Per saperne di più:
Pro e contro dello sviluppo software in Ruby
Rotaie e altri mezzi di trasporto
Sviluppo di Rails con TMUX, Vim, Fzf + Ripgrep