Redazione
a- a+

Scrivere programmi leggibili, regole di scrittura

Vediamo quali solo le principali regole da seguire per scrivere programmi facilmente leggibili ed aggiornabili.

Introduzione
Scrivere dei programmi "leggibili" da tutti i programmatori richiede seguire delle semplici, ma importanti regole.

L'importanza
E' molto importante seguire queste regole e i motivi sono svariati, vediamoli insieme.
Un programma deve permettere un facile aggiornamento sia per se stessi che per altri sviluppatori. Immaginate che dopo 1 anno il cliente vi chiede di aggiornare il proprio software a causa di ampliamenti nella propria azienda. Probabilmente se non avete lavorato esclusivamente su quel prodotto vi sarete dimenticati i dettagli del programma. Immaginate quanto tempo impieghereste solo nel studiare come avevate realizzato a livello logico il programma... e quale pagina faceva cosa...
La stessa cosa, anzi, ancora piu' problematica è per un programmatore che si trova davanti al codice per la prima volta.

Queste regole sono importanti anche per il lavoro di gruppo. Avete un team di 20 persone che devono realizzare un CMS (Content Management System) per una grossa azienda e avete 30 giorni per la consegna. L'unica soluzione è che ciascun programmatore realizzi un codice che è facilmente comprensibile a prima vista.

Queste regole sono importanti per ASP, ma sono valide per la realizzazione di qualsiasi programma in un qualsiasi linguaggio di programmazione o tecnologia utilizzata.

Commenti
Commentare il codice è uno degli strumenti piu' importanti per renderlo leggibile. Prendiamo per esempio il Codice 3.2

Codice 3.2

<%@ Language=VBScript %>
<% 
' Funzione DataInNum a cui passo una data
function DataInNum(data)
   ' Preleva dalla data l'anno
   anno = Year(data)
   ' Preleva dalla data il mese 
   mese = Month(data)
   ' Preleva dalla data il giorno 
   giorno = Day(data)
   ' Controllo valori < 10
   If mese < 10 then 
     mese = 0 & mese
   End If
   If giorno < 10 then
     giorno = 0 & giorno
   End If
   ' Concatena i valori in un unico numero
   DataInNum = anno & mese & giorno 
end function

data = DataInNum (#13/06/2003#)
%>

Si possono distinguere 2 tipi di testo, uno in rosso e uno in verde. Quello in rosso è il codice ASP, mentre quello in verde sono i commenti.
In ASP utilizzando VBScript per inserire un commento è necessario inserire come primo carattere l'apice ( ' ) (apostrofo).

Come vedete nel Codice 3.2 è stato fatto un uso quasi eccessivo di commenti. Immaginate di dover inserire in una pagina .asp oltre 1000 righe di codice... inserire tanti commenti (ogni 1 o 2 righe) significherebbe quasi raddoppiarle e quindi il tempo di caricamento di una pagina web sarebbe molto piu' lungo. Questo è l'unico aspetto negativo dei commenti, il loro utilizzo influisce sulle prestazioni di caricamento.

In ogni caso è necessario comprendere quando è necessario utilizzare i commenti o meno. Facendo riferimento sempre al Codice 3.2 notiamo che ci sono circa 20 righe di codice, senza commenti sarebbero state circa 15. Ora se la pagina .asp contenesse solo questo codice avrei potuto inserire anche un commento per ogni riga, ma su lunghi codici è consigliabile non farlo.

Ogni "pezzo" di codice funzionale deve essere commentato e ogni operazione fondamentale. Se inseriamo il Codice 3.2 in una pagina di circa 1000 righe di codice, questo sarebbe così commentato:

Codice 3.2

<%@ Language=VBScript %>
<% 
' Funzione DataInNum a cui passo una data e che
' restituisce un numero intero di 8 cifre
function DataInNum(data)
   anno = Year(data)
   mese = Month(data)
   giorno = Day(data)
   If mese < 10 then 
     mese = 0 & mese
   End If
   If giorno < 10 then
     giorno = 0 & giorno
   End If
   DataInNum = anno & mese & giorno 
end function

' Trasformazione data con DataInNum
data = DataInNum (#13/06/2003#)
%>

Addirittura l'ultimo commento "Trasformazione data con DataInNum" può essere trascurato.

A ciascuno il proprio nome
Nel proprio programma ognuno può chiamare le variabili, funzioni, procedure, constanti..., come vuole: pippo, pluto e paperino possono essere dei nomi, ma sicuramente non aiutano nella leggibilità del codice.

Ogni nome deve essere scelto in base a ciò che contiene o alle azioni che esegue.
Facendo riferimento sempre al listato 3.2 possiamo notare che i nomi scelti non sono casuali, ma ben studiati.

La funzione si chiama DataInNum, ovvero con pochissima fantasia può chiarirci subito che la funzione trasformerà una data in numero. Anno, mese e giorno sono variabili che contengono rispettivamente l'anno, il mese e il giorno della data passata. Data, infine, sarà la variabile che conterrà il valore della data (nel nostro caso in formato numerico).

In ASP, come in molti altri linguaggi, questi nomi devono seguire regole importanti:

  • sono accettati solo caratteri alfanumerici
  • l'unico carattere speciale accettato è il carattere di sottolineatura (_) (underscore) e viene utilizzato per separare delle parole
  • i nomi devono iniziare con un carattere alfabetico
  • la lunghezza dei nomi non deve superare 255 caratteri
  • una stessa variabile non può assumere piu' di un valore e gestire contemporaneamente tutti valori (assume l'ultimo valore assegnatogli)
  • non può assumere parole chiavi (o riservate) (per esempio Cint, date,...)

Vediamo ora come scegliere il nome. Esistono delle convenzioni su come assegnare i nomi alle variabili, ma ben presto se ne possono creare di proprie o non seguirle per niente. Non sono obbligatorie, non rendono il programmatore meno o piu' capace degli altri, ma sono utili per distinguere i tipi di dati.

Io per esempio tendo essenzialmente a rendere il nome descrittivo, ma anche coinciso e di pochi caratteri (in modo che sono piu' veloce nel scrivere il programma). Vi propongo il mio ragionamento: devo realizzare un software che deve richiedere la data di nascita e del proprio anniversario (santo) di una coppia di coniugi. Quindi mi servono quattro variabili, io le chiamerei nel seguente modo:

  • data_comp_01
  • data_sant_01
  • data_comp_02
  • data_sant_02

Come vedete sono descrittive e abbastanza coincise. Leggendo il nome della variabile intuitivamente si comprende che valore assumono. Essenzialmente utilizzo il prefisso solo per le date e per alcuni oggetti. Per le restanti tipi di variabili non utilizzo nulla in quanto un nome appropriato fa comprendere subito il tipo di variabile. Comunque ecco i prefissi convenzionali:

numeri interi    i
numeri a precisione singola    sng
numeri a precisione doppia    dbl
stringa    str
data    dt
boolean    bol
valuta    cur
oggetto    obj

Indentazione del codice
Una soluzione ottima per realizzare del codice pulito e leggibile è indentare il codice. Questo significa che tutto ciò che si trova dentro una condizione, dentro un ciclo, in una funzione o procedura... deve essere piu' spostato verso dentro...

Facendo riferimento sempre al Codice 3.2 possiamo notare questo particolare. Il codice all'interno della funzione è piu' spostato verso destra, quello all'interno della condizione If ancora piu' verso destra. Utilizzando questo metodo, una volta concluso il codice, se è stato scritto tutto correttamente si dovrebbe tornare nella colonna zero.

Una volta entrati in quest' ottica vedrete che rivedere un codice sarà banalissimo... e spesso si possono saltare anche centinaia di righe perchè sicuri che al loro interno non troveremo ciò che stiamo cercando.



Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Staff
Ti interessano altri articoli su questo argomento?
Chiedi alla nostra Redazione!