Scrivere codice con stile permette di creare listati più leggibili e semplici da modificare così come di correggere più rapidamente le applicazioni o di integrarle con nuove funzionalità; per utilizzare uno stile chiaro in sede di sviluppo è necessario acquisire un metodo, ce ne sono di diversi e non necessariamente uno è da ritenersi migliore dell'altro, è comunque fondamentale individuare quello più adatto per le proprie esigenze in modo da rendere il proprio lavoro più rapido ed eventualmente facilitare il compito di coloro che, per diverse (e lecite) ragioni, dovessero avere accesso al codice di un'applicazione.
Un esempio classico in relazione all'argomento trattato, è quello degli script distribuiti sotto licenza Open Source, non basta che questi siano "liberamente" modificabili, è necessario anche che siano scritti i modo chiaro e che sia possibile individuare facilmente all'interno di essi i diversi elementi compositivi in modo da apportare, senza inutili sforzi, le modifiche del caso.
Scegliere uno stile per i commenti
Un codice ben scritto è anche un codice ben commentato, l'affermazione può sembrare perentoria ma soprattutto quando si deve affrontare la digitazione di listati di grandi dimensioni è bene tenere a mente che non basta trovare i giusti termini da associare alle variabili, non è sufficiente indentare il codice all'apertura di ogni nuova parentesi, bisogna anche utilizzare i commenti in modo razionale; infatti i commenti possono essere utilizzati per numerosi scopi:
- Introdurre delle note informative (una licenza, un copyright, una procedura d'installazione o un semplice messaggio per sé e per gli utilizzatori etc.)
- Delimitare un frammento di codice funzionalmente distinto dagli altri
- Isolare più frammenti di codici che svolgono funzioni simili ma non uguali in modo da non generare confusione
- Disabilitare un frammento di codice che potrà essere decommentato in caso di necessità (ad esempio: un sistema di paginazione)
- Inserire annotazioni o avvertimenti (ad esempio: "Non applicare modifiche al di sotto di questa riga!")
- Fornire spiegazioni relativamente all'utilizzo di determinati elementi (ad esempio: "Valorizzare le variabili successive con i dati di connessione a MySQL.")
Come è noto PHP permette di utilizzare tre tipologie di stili per i commenti, ma forse non tutti sanno che questi sono stati mutuati da altri linguaggi:
<?php
# stile shell di Unix (ma anche Perl e Python)
// commento in stile C++
/* commento in stile C, utilizzato anche in Java */
?>
Quale di questi è il migliore quando si sviluppa in PHP? La domanda non può avere una risposta certa in linea generale, l'ultimo stile elencato potrebbe risultare più adatto per lunghi blocchi di commenti così come i primi due stili potrebbero essere preferibili per brevi commenti su singola riga; ma è possibile essere più chiari se la domanda diventa Quale stile utilizzare per i commenti in una determinata applicazione in PHP? La risposta più corretta in questo caso potrebbe essere "Sempre lo stesso stile per indicare gli stessi elementi".
In effetti uno script che presenta uno stile univoco anche per i commenti dovrebbe risultare molto più semplice da leggere e da capire, è comunque sempre possibile utilizzare stili differenti per delimitare in modo netto diverse tipologie di commenti; per esempio si potrebbero utilizzare i commenti in "stile C" per introdurre un piccolo disclaimer o un copyright subito dopo il primo delimitatore di apertura, per poi utilizzare uno dei due altri stili disponibili a seconda degli elementi che si desidera commentare:
<?php
/* questo script è distribuito sotto licenza Open Source
GNU GPL V.2, consulta il file license.txt per i termini della licenza */
// qui sotto è presente il codice della pagina
[...]
?>
Un altro discorso abbastanza importante è quello relativo alla posizione dei commenti, come è noto questi possono essere inseriti in qualsiasi punto della pagina "nascosti" all'interno del codice PHP ma è bene comunque utilizzare un criterio riconoscibile e chiaro anche nello scegliere le posizioni più adatte; estendendo il discorso fatto in precedenza, una delle possibili soluzioni praticabili è quella di utilizzare uno stile di commenti per le informazioni non strettamente legate al listato, un altro stile per la delimitazione dei blocchi di codice e un terzo per le spiegazioni relative ai diversi elementi.
Nell'esempio seguente verrà proposta un'applicazione pratica di quanto esposto basandosi sull'esempio di un frammento di listato che richiede la connessione ad un DBMS MySQL e la selezione del database da utilizzare:
<?php /* informazioni relative alla licenza */ # parametri per il database $host = ""; // inserire l'hostname di MySQL $user = ""; // inserire la username per la connessione a MySQL $pass = ""; // inserire la password associata alla username $db = ""; // inserire il nome del database da selezionare ?>
Nell'esempio appena esposto è stato utilizzato lo "stile C" per introdurre delle informazioni relative alla licenza; lo "stile della shell di Unix" per introdurre un blocco di codice e lo stile "C++" per fornire brevi spiegazioni sui parametri.
Chiaramente, lo "stile C" risulta essere leggermente più flessibile degli altri in quanto permette di delimitare facilmente commenti anche lunghi utilizzando semplicemente 4 caratteri, quindi gli esempi appena fatti devono essere considerati solo come tali e nello sviluppo di un'applicazione può risultare più agevole sfruttare questo stile per qualcosa di più che un semplice box per contenere disclaimer.
D'altra parte, perché utilizzare 4 caratteri per delimitare una breve stringa di commento quando è possibile utilizzarne due (//
) o addirittura uno solo (#
)? Il discorso relativo all'utilizzo dei commenti si rivela quindi più articolato di quello che ad un primo avviso potrebbe sembrare, anche se la problematica è risolvibile tranquillamente utilizzando il buon senso.
Tags di delimitazione e indentazione
Il discorso riguardante lo stile da utilizzare per i tags di delimitazione è molto semplice; in generale vengono utilizzati principalmente due stili: <? [...] ?>
e <?php [...] ?>
, quale utilizzare? La risposta in questo caso può essere perentoria: il secondo stile.
Il primo stile infatti è ormai deprecato in quanto utilizzarlo potrebbe ingenerare confusione con altri tag di delimitazione come per esempio <?xml [...] ?>
, è quindi corretto utilizzare sempre il formato <?php [...] ?>
contenente la dichiarazione del linguaggio utilizzato.
Per quanto riguarda lo stile di indentazione non è possibile essere altrettanto perentori; nel corso di questo capitolo verranno presentati 4 diversi stili per l'indentazione, il lettore potrà così valutare quale di essi possa essere il più adatto a seconda dei casi.
Il primo stile è detto stile GNU perché è mutuato dal programma GNU Emacs (il noto editor di testo per sistemi Linux e Unix) e prevede l'utilizzo di 4 spazi per l'indentazione e l'accapo per le parentesi graffe:
<?php if (condizione) { funzione(); } ?>
Il secondo stile, abbastanza simile a quello precedente, viene chiamato stile Whitesmiths perché mutuato da quello utilizzato nei compilatori commerciali C Whitesmiths, esso si caratterizza per l'utilizzo di 4 o 8 spazi per l'indentazione (da notare la differente posizione del contenuto all'interno delle parentesi graffe):
<?php if (condizione) { funzione(); } ?>
Lo stile Allman prende il suo nome dal programmatore americano Eric Allman (noto per la creazione del software Sendmail) e si caratterizza per l'utilizzo di 8 spazi che però non coinvolgono le parentesi graffe (mandate a capo):
<?php if (condizione) { funzione(); } ?>
Infine, lo stile K&R (dovuto ai programmatori C Kernighan & Ritchie) che fa largo uso della tabulazione (da notare come la prima parentesi graffa non venga mandata accapo):
<?php if (condizione) { funzione(); } ?>
In linea generale si tratta di 4 ottimi stili, largamente utilizzati nella creazione delle più diverse applicazioni realizzate non soltanto in PHP; è però consigliabile fare ricorso alla tabulazione quanto più possibile, creare 4 spazi con il Tab è di certo molto più comodo che cliccare 4 volte sulla barra spaziatrice, permette di essere più rapidi e di limitare il numero di errori.
Conclusioni
Esistono numerosi stili per la digitazione del codice PHP così come per altri linguaggi, non è semplice affermare con certezza quale di essi sia il migliore, ammesso che sia possibile; è comunque importante acquisire un metodo per rendere i listati più semplici da leggere e da modificare indipendentemente dallo stile scelto.
In questa trattazione sono stati affrontati gli argomenti relativi ai possibili stili da utilizzare nella creazione dei commenti, nella scrittura dei tag di delimitazione e nell'indentazione.