Categories
Coding tips

Zucchero sintattico

In computer science, syntactic sugar is syntax within a programming language that is designed to make things easier to read or to express. It makes the language “sweeter” for human use: things can be expressed more clearly, more concisely, or in an alternative style that some may prefer.
Fonte: Syntactic Sugar su Wikipedia

Quando si riprende in mano del codice dopo anni che è stato scritto o quando si lavora in team è veramente importante che la sintassi usata sia la più “zuccherata” possibile.

Spesso nel mio lavoro perdo una quantità considerevole di tempo a cercare di capire cosa fa una porzione di codice perché non è stata commentata o perché il programmatore (molto spesso io stesso) ha cercato di scrivere meno linee possibili omettendo parentesi o inserendo due istruzioni sulla stessa riga.

La qualità del codice scritto dovrebbe essere anche valutata in base a quanto risulta semplice riprendere in mano il codice.

Cosa fare quindi?

Ecco qualche semplice consiglio:

Commentare

L’uso dei commenti è vitale per iniziare a documentare il proprio codice. Avere un documento esterno che descrivere il funzionamento del codice senza avere dei commenti nel codice è praticamente inutile.

// Commento singolo

/*
Commento su più righe
*/

/**
* Commento in xxxDOC style
*/

Se, per esempio, abbiamo una funzione e la vogliamo commentare in maniera utile dobbiamo fornire più informazioni possibili, inoltre alcuni IDE (es: Eclipse ) sono in grado di leggere i commenti scritti in simil JavaDoc per utilizzarli per il code completion facilitando tantissimo il lavoro.

/**
* Questa funzione pulisce una stringa
* @param String $input stringa da pulire
* @return String $output stringa pulita
*/
function pulisciStringa( string $input ) {
     $output = '';
     $output = trim($input);
     return $output;
}

Nomi parlanti delle variabili

Più volte ho visto variabili con nomi dati a caso o contratti così tanto da non essere più comprensibili.

$ems = 12; // Non si capisce a cosa serva
$etmdstu = 12; // Ancora non è chiaro

// In questo caso i dubbi su a cosa serva la variabile 
// sono veramente pochi
$etaMediaStudenti = 12; 

Una istruzione una riga

A meno che non si stia facendo un esercizio di stile (in ogni caso cosa discutibile) è meglio usare la regola di 1 istruzione 1 riga.

// In caso di revisione del codice, la seconda istruzione potrebbe essere non vista

$nome = $trim($nome); $nome = ucfirst($nome); 

Le parentesi graffe non costano

Le graffe in molti casi delimitano blocchi di codice. Se il codice delimitato è di una sola istruzione allora alcuni linguaggi permettono di ometterle, questo però rende più complicata la lettura del codice e nel caso il programmatore metta anche più istruzioni sulla stessa riga rende il tutto un incubo.

if ( $annoInserito == 2013 ) 
    echo "Nel 2013 sono successe un sacco di cose"; salva($annoInserito);

L’echo viene eseguita se l’if scatta, la seconda istruzione sempre.
Questo leggendo il codice velocemente non è subito comprensibile.
Invece:

if ( $annoInserito == 2013 ) {
    echo "Nel 2013 sono successe un sacco di cose"; 
}
salva($annoInserito);

In questo ultimo caso è chiarissimo.

Concludendo

Le cose che ho scritto sono semplici e a molti potrebbero sembrare ovvie, ma vi assicuro che nei miei anni di lavoro ho incontrato diverse difficoltà che potevano essere evitate seguendo queste semplici regole.

Non auguro a nessuno di voi di ritrovarsi in una sessione RDP su una VPN “a manovella” a dover correggere attraverso notepad.exe del codice in produzione che è stato scritto da un programmatore che ha ignorato le regole base della sintassi zuccherina.