Guideline Google: iniettare collaboratori, passare i dati per chiamata
Testo scritto con l’intelligenza artificiale a partire da una fonte citata, senza revisione umana prima della pubblicazione.
La regola «Construct with Collaborators, Call with Work» distingue dipendenze persistenti e parametri variabili per migliorare leggibilità e testabilità del codice.
Per impostare gli input degli oggetti senza ambiguità, Google propone una regola semplice: “Construct with Collaborators, Call with Work”1.
Sul blog Testing di Google, Shahar Roth presenta la linea guida, adattata da un episodio di Google Tech on the Toilet. L’idea chiave: distinguere tra due categorie di input. Da un lato i “collaboratori”, cioè le dipendenze stabili che definiscono l’identità dell’oggetto e lo accompagnano per tutta la sua vita. Dall’altro il “work”, gli input che variano a ogni interazione. I primi si passano al costruttore. I secondi si forniscono ai metodi, al momento della chiamata1.
Così si evita di confondere ciò che l’oggetto è con ciò che l’oggetto fa in una data esecuzione. Se una dipendenza resta costante e caratterizza il comportamento continuativo dell’oggetto, rientra tra i collaboratori e si inietta nel costruttore. Se un input riguarda l’operazione corrente e cambia chiamata dopo chiamata, appartiene al “work” e si passa al metodo che esegue quell’operazione1.
Le fonti offrono esempi concreti di “work”: un percorso di file o una query al database. Entrambi variano a seconda del compito da svolgere e quindi non vanno nel costruttore. Si forniscono invece alla singola invocazione del metodo che li usa. Al contrario, i collaboratori non dipendono dalla specifica richiesta in ingresso; restano invariati una volta configurato l’oggetto1.
La regola non introduce astrazioni nuove, ma rende esplicita una decisione di progettazione ricorrente: separare dipendenze stabili e dati per-call. Il costruttore rimane il punto in cui si definiscono le capacità persistenti dell’oggetto tramite i collaboratori. I metodi ricevono solo ciò che serve per completare l’azione richiesta in quel momento. La chiarezza della firma dei metodi migliora. Anche l’intento del costruttore diventa leggibile a colpo d’occhio.
Il post segnala l’origine del materiale nell’episodio di Google Tech on the Toilet e accredita l’autore. Dalla pagina è disponibile anche una versione pronta per la stampa dell’episodio, utile per la condivisione interna dei team1.
Un’indicazione pratica emerge dalle stesse formule della linea guida. Quando ti chiedi dove posare un parametro, verifica due cose: definisce l’identità dell’oggetto nel tempo o descrive il lavoro di adesso? Se vale la prima, tratta quel parametro come un collaboratore e passalo al costruttore. Se vale la seconda, passalo al metodo che esegue il lavoro. Questa domanda binaria riduce l’ambiguità nelle API e limita scelte arbitrarie nella firma delle classi1.
Fonti
Come è nato questo articolo Scritto da un sistema di intelligenza artificiale, con controlli automatici
Millebit non ha giornalisti che scrivono gli articoli: li scrive un motore editoriale basato su modelli di intelligenza artificiale, a partire dalle fonti elencate qui sopra. Prima di uscire, ogni testo passa questi controlli:
- Fedeltà alle fonti. Un secondo passaggio toglie ogni affermazione che le fonti non sostengono.
- Anti-cliché. Un filtro scarta frasi fatte, enfasi e tic della prosa artificiale.
- Giudizio editoriale. Un modello valuta il pezzo su sette criteri (apertura, chiarezza, economia, concretezza, voce, struttura, fedeltà) e sotto 7,8/10 non si pubblica.
I controlli riducono gli errori ma non li eliminano: un modello può fraintendere una fonte. Per le decisioni importanti, risali alla fonte originale. Se trovi un errore, segnalacelo.
Per vedere Millebit nelle notizie principali di Google, aggiungilo alle tue fonti preferite. Oppure segui l’edizione di oggi, il feed RSS o La Sintesi.