Google Apps Script:
Organizzare il codice in funzioni

Come fare:

In Google Apps Script, che si basa su JavaScript, si definiscono le funzioni utilizzando la parola chiave function, seguita da un nome di funzione unico, parentesi () che possono contenere parametri e parentesi graffe {} che racchiudono il blocco di codice della funzione. Ecco un esempio di base:

function greetUser() {
  var user = Session.getActiveUser().getEmail();
  Logger.log('Ciao, ' + user + '!');
}

greetUser();

Esempio di output:

Ora, prendiamo in considerazione un esempio più pratico relativo a Google Sheets in cui separiamo la funzionalità in due funzioni: una per configurare il foglio e un’altra per riempirlo con i dati.

function setupSheet() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  sheet.setName('Dati Vendita');
  sheet.appendRow(['Articolo', 'Quantità', 'Prezzo']);
}

function populateSheet(data) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Dati Vendita');
  data.forEach(function(row) {
    sheet.appendRow(row);
  });
}

// Inizializzazione dell'array di dati
var salesData = [
  ['Widgets', 15, 2.5],
  ['Gadget', 8, 3.75]
];

// Esecuzione delle funzioni
setupSheet();
populateSheet(salesData);

In questo esempio, setupSheet prepara il foglio e populateSheet prende un array di dati di vendita per popolare il foglio. Separare queste preoccupazioni rende il codice più pulito e più adattabile ai cambiamenti.

Approfondimento

Il concetto di dividere il codice in funzioni non è nuovo né unico per Google Apps Script; è una pratica di programmazione fondamentale sostenuta in quasi tutti i linguaggi di programmazione. Storicamente, le funzioni si sono evolute dal concetto matematico di mappare input a output, diventando una pietra miliare nella programmazione strutturata. Questo approccio promuove la modularità e il riutilizzo del codice, offrendo percorsi chiari per testare parti individuali dello script.

Google Apps Script, essendo basato su JavaScript, beneficia significativamente delle funzioni di prima classe del JavaScript, che consentono di passare funzioni come argomenti, restituirle da altre funzioni e assegnarle a variabili. Questa caratteristica apre a pattern avanzati come callback e programmazione funzionale, anche se questi pattern possono introdurre complessità che potrebbe essere non necessaria per semplici attività di automazione in Google Apps Script.

Per progetti più grandi o applicazioni più complesse, gli sviluppatori potrebbero esplorare l’uso delle funzionalità più recenti di JavaScript come le funzioni freccia, async/await per operazioni asincrone e persino TypeScript per la tipizzazione statica. TypeScript, in particolare, può essere compilato per essere eseguito come Google Apps Script, fornendo una via d’accesso per gli sviluppatori in cerca di una verifica dei tipi più robusta e funzionalità orientate agli oggetti più avanzate.

Tuttavia, per la maggior parte delle esigenze di scripting all’interno della suite di Google Apps, attenersi a funzioni semplici e ben organizzate come dimostrato fornisce una solida base. È sempre un atto di equilibrio tra sfruttare funzionalità avanzate per l’efficienza e mantenere la semplicità per facilità di manutenzione e leggibilità.