JavaScript, HTML, CSS e... !
0 commenti

Corso Gratuito propedeutico all'uso di Google Apps Script

JavaScript Semplificato per Google - Lezione 3 bis: Esempio con Google Sheets

Un importante nonché semplice addendum a quanto ti ho detto sulle variabili nella lezione precedente. Avevo previsto di parlarne indirettamente nei prossimi video tuttavia grazie ai vostri commenti ho capito che conviene specificarlo subito per evitare fraintendimenti.

Prima di questo però mi piacerebbe ricevere da te alcuni feedback su come stanno andando queste lezioni. Mi saranno molto utili per orientare i prossimi video in base alle tue esigenze, per questo ti chiedo gentilmente di lasciarmi un commento per dirmi se finora ti è tutto chiaro, se ci sono aspetti che vorresti fossero più approfonditi o qualsiasi indicazione che ritieni possa essere utile per te e per altri che vogliono approcciarsi alla programmazione nel modo più rapido e semplificato possibile. Ricordo che questo è un corso JavaScript atipico, ce ne sono un’infinità in rete di corsi più o meno complessi e più o meno completi, ma con questo corso non voglio che tu impari ORA il 100% del JavaScript, voglio che tu impari ORA solo quello che ti serve per ottenere gli stessi risultati tangibili senza troppe finezze, massimo risultato minimo sforzo, in modo che tu possa creare l’applicazione che desideri con le tue mani e nel modo più rapido possibile e stupire te stesso, amici e colleghi.

Credo davvero in questo approccio perché ho appurato negli anni che funziona! L’idea pertanto è proprio quella di fare questo percorso insieme, di sentirsi uniti dando tutti il proprio contributo per raggiungere un obiettivo comune e per farlo raggiungere anche ad altri che come me e te condividono la stessa passione.

Sono qui per questo :) Troppe volte ho sentito dire frasi tipo “forse non sono portato”... no, non esiste, posso accettare un “non sono interessato”, ma in tal caso non saresti qui. Se mi stai seguendo invece è perché hai voglia di riuscirci e ti garantisco che ci riuscirai. Quindi, qualsiasi dubbio o suggerimento tu abbia in questo momento, metti momentaneamente in pausa il video e lasciami un commento, ti ci vorranno pochi secondi, e sarà un investimento per te e per tutti :) Ricordati anche di iscriverti al canale se non l’hai già fatto :)

Tornando al video di oggi, ti mostro subito il concetto aggiuntivo sulle variabili che dicevo, dopodiché farò un riepilogo su cosa abbiamo visto finora, una rapida check list per essere allineati prima di passare alla prossima lezione.

Bene… semplicemente, quanto fondamentale, oltre a chiamare le variabili con nomi diversi per evitare problemi di ambito… chiamale con nomi parlanti!

GUARDA IL VIDEO:

Cosa mostro nel video:

Nel video precedente ho evidenziato l’utilità di chiamare in modo diverso variabili con diverse finalità, tuttavia per semplicità di spiegazione e anche per mancanza di un effettivo contesto nell’esempio, ho lasciato fuori il concetto di quale sia il miglior nome da dare ad una variabile. Va da sé che chiamare le variabili mia_variabile1 o myvar2 non è la strada giusta per la semplificazione. Se il codice aumenta di complessità e/o se ritornerai a mettere mano al codice a distanza di tempo, oltre ai commenti, avere nomi di variabili che a colpo d'occhio aiutano a capire quello che contengono ti faciliterà non poco le operazioni e risparmierai un sacco di tempo e di energie mentali per capire quello che fa il tuo stesso codice :)

Ti mostro con un esempio pratico in Google Apps Script quello che intendo, fornendoti alcune best practice a livello di nomenclatura che, se utilizzate, potranno esserti di aiuto per ottenere un codice più leggibile e gestibile.

Questi due codici sono esattamente la stessa cosa, effettuano le stesse identiche operazioni, ovvero recuperano il contenuto del foglio che nel caso specifico si tratta di una lista di nomi con associato un indirizzo email e una data di scadenza, al fine di verificare se quest’ultima risulta passata rispetto alla data odierna. In tal caso invia un'email all’utente. In pratica ho creato un sistema di controllo scadenze automatizzato con 20 righe di codice (giusto per mostrarti cosa intendo quando dico che con Google Apps Script e le nozioni base di JavaScript puoi ottenere grandi risultati in modo semplice e veloce).

Guardando il codice, se volessi provare a leggerlo incontrerei subito delle difficoltà, o meglio non sono in grado a colpo d’occhio di capire cosa fa questa funzione che ho chiamato genericamente myFunction() così come cosa contengono le variabili mydate, valore1, valore2 o valore3 (per mia convenzione le ho scritte in inglese ma in italiano sarebbe appunto la stessa cosa). Dovrei quindi andarle a cercare a cosa si riferiscono sia durante il loro utilizzo che in una futura fase di integrazione di altre funzionalità o manutenzione.

Quindi ad esempio value2, contiene l’elemento dell’array values con indice 1 quindi quello in seconda posizione, ma values cosa contiene? Ah, tutti i valori presenti nel foglio, ok. Quindi in seconda posizione cosa trovo? La mail, bene allora sarà quella alla quale inviare la notifica. In quale caso viene inviata la notifica? Se la mia data è maggiore di valore3. Mia data cosa contiene, ok il giorno corrente mentre valore3 contiene l’elemento dell’array values con indice 2 quindi quello in terza posizione, che se guardo nel foglio è la data di scadenza.

Ho un po' estremizzato in questo caso dato che il codice è molto semplice ma basta pensare a un file con 10 o 20 funzioni che non hanno nomi parlanti e una tabella nel Foglio di Google che anziché avere 3 campi ne ha 20 o 30 (tra cui la data di nascita dell’utente, la data di registrazione, di ultimo pagamento, ecc...) diventa facile confondersi sui contenuti che possono assumere variabili che non hanno nomi ben definiti.

Per questo il suggerimento di assegnare nomi parlanti a funzioni e variabili. In questo secondo esempio, identico al precedente, riesco ad identificare al volo quello che fa il codice, a partire dal nome della funzione ‘invia un’email se la data è scaduta’, fino al contenuto delle variabili dove noto subito quale sia quella che contiene l’indirizzo email dell’utente così come il mio valore booleano (true o false) se la data di oggi è superiore a quella di scadenza.

Per far vedere che tutto funziona avvio la funzione (commentando la riga per l'invio della mail per evitare di inviare comunicazioni a indirizzi di test) e alla data di registrazione di questo video le segnalazioni di avviso scadenza saranno inviate per gli utenti Mario Rossi e Giuseppe Verdi, mentre Luigi Bianchi può ancora usufruire dell’ipotetico servizio.

Alcune best practice per dare coerenza alle nomenclature possono essere le seguenti:

  • Iniziare o terminare i nomi delle variabili con il relativo tipo (quindi se è una stringa, un boolean, una data o altro), scrivere tutto minuscolo e separare le parole con l'underscore. Chiamare una variabile user non fa capire se contiene una stringa oppure un oggetto o comunque il tipo di informazione, scrivere invece str_user_firstname o user_firstname_string così come per object è decisamente più autoesplicativo.

  • L’uso delle abbreviazioni deve essere fatto il meno possibile, o comunque in modo ragionato, per evitare fraintendimenti. Ad esempio, utilizzare un termine come del può essere fuorviante, si può intendere come delete quando invece è un innocuo delivery.

  • I nomi delle funzioni dovrebbero iniziare con una lettera minuscola e seguire la convenzione camelCase (a gobbe di cammello) ovvero unendo tutte le parole tra loro, lasciando le loro iniziali maiuscole. Questo fa in modo di distinguerle dell'inizializzazione di oggetti creati da una classe (che rassicuro, apparte quelli noti e classici come new Date per gestire le date, il resto non è di interesse per i nostri scopi). In questo caso comunque la prima lettera maiuscola e anche la colorazione data dall’editor ne dà un'immediata distinzione.

Questi sono alcuni suggerimenti, quando inizierai a metterli in pratica vedrai subito il vantaggio che ti porteranno e troverai il tuo metodo per scrivere i nomi di funzioni e variabili in modo parlante secondo le tue logiche.

Quindi ad oggi abbiamo visto, e sottolineo... in ottica di semplificazione:

  • L’interfaccia di Google Apps Script, gratuita e che non richiede di installare niente;

  • Le regole sintattiche di base quali:

  • - terminare le istruzioni con il punto e virgola;

  • - inserire spazi e indentazioni per rendere il codice più leggibile;

  • - commentare sempre!

  • Per quanto riguarda le variabili, dichiarazioni e ambiti:

  • - usa sempre var per inizializzare una variabile (anche se ti ho mostrato a cosa serve let e const);

  • - dai un nome diverso alle variabili con diverse finalità;

  • - inserisci fuori da tutte le funzioni le variabili che vuoi che vengano lette da qualsiasi funzione;

  • - usa nomi parlanti, anche se sono apparentemente troppo lunghi, per variabili e funzioni;

  • - utilizza alcune convenzione di nomenclatura come: scrivere sempre i nomi delle variabili in minuscolo con le parole separate da underscore e con il riferimento al tipo di dato contenuto, come string, boolean, object o altro; evita le abbreviazioni nei nomi che possono generare confusione; usa il camelCase per i nomi delle funzioni.

 

Ricordati di lasciarmi un commento con i tuoi feedback e di iscriverti al mio canale se ancora non l'hai fatto e ci vediamo nel prossimo video dove parleremo di tipi di dato e array.

A presto, Ciao ;)

 

VAI alla Lezione 4: Tipi di dato, Operatori e Array

TORNA alla Lezione 3: Variabili, Dichiarazioni e Ambiti

Tags

Michele Pisani

Michele Pisani

Sviluppatore Javascript ed esperto in Digital Analytics

L'esperienza nel settore Digital Analytics unita ad anni di sviluppo in Javascript ha trovato la massima espressione in Google Apps Script che mi ha permesso, con estrema facilità e poche righe di codice, di realizzare potenti applicazioni interattive e processi automatizzati integrati con i prodotti della G Suite.

Come contattarmi
scrivi un commento

0 Commenti

Non ci sono commenti

Nessuno ha ancora commentato questo articolo, fallo tu per primo!

scrivi un commento

Scrivi un commento

Il tuo indirizzo email non sarà pubblicato.I campi contrassegnati da un * sono obbligatori
Puoi utilizzare i seguenti tag nei commenti:
[bold]testo[/bold] se vuoi evidenziare un testo con il grassetto[code]function helloworld() { }[/code] se vuoi pubblicare una porzione di codice[url]https://www.appsscript.it[/url] se devi riferirti ad un indirizzo web