Per ogni buon programmatore è d’obbligo non solo guardare alla correttezza e alla leggibilità del codice scritto ma anche e soprattutto all’ottimizzazione per la compilazione o l’interpretazione dello stesso.
L’aspetto dell’ottimizzazione del codice potrà sembrare marginale ma ci sono casi in cui diventa indispensabile aumentare la velocità di esecuzione, minimizzare l’occupazione di memoria o minimizzare la dimensione nel caso di file compilati.
Semplici passi scritti diversamente possono fare la differenza in termini di prestazioni in codici anche non troppo complessi o lunghi.
Ecco 8 consigli utili e regole da rispettare per scrivere un codice perfetto ed ottimizzato.
PARSIMONIA CON LE ECCEZIONI
Il blocco try & cacth con cui si usa racchiudere pezzi di codice in cui è prevedibile il verificarsi di qualche errore va usato con attenzione e non deve essere considerato una scappatoia veloce per ottenere il risultato voluto.
Esso pesa durante la lettura del codice per cui è molto meglio perdere un po’ più di tempo concentrandosi sulla purezza e correttezza del proprio script; nel caso ne fosse conveniente l’utilizzo, cerchiamo di limitare il codice sotto controllo al minor numero di righe possibile e di usarlo fuori da cicli e in funzioni che non vengano richiamate troppo spesso.
ABBONDATE CON I COMMENTI
In caso di funzioni lunghe o poco chiare o variabili non subito utilizzate ricordatevi di commentare, sia per migliorare la leggibilità per chi potrebbe leggere e continuare il codice al posto vostro che per riutilizzo o modifica futuri.
CURATE LA FORMA
E’ importante, sia per chi sviluppa che per chi legge, che il codice sia chiaro, ordinato e ben formattato.
Date nomi chiari a funzioni, proprietà e variabili per renderne più semplice l’impiego e lo scopo, se lo ritenete opportuno usate prefissi per indicare tipi diversi di variabili e funzioni.
Scrivendo i nomi chiaramente non avrete bisogno di scrivere commenti troppo descrittivi.
Cercate di dichiarare le variabili sempre prima del codice così da poterle ritrovare facilmente.
Indentate per bene le espressioni per capire dove iniziano e finiscono: molti programmi hanno l’indentazione automatica durante la scrittura o opzioni per sistemare il codice in seguito.
ATTENTI ALLE VARIABILI LOCALI
Spesso per comodità si usa dare allo variabili locali di una funzione o di un ciclo lo stesso nome di quelle usate fuori dagli stessi: cercate di non acquisire questa brutta abitudine da cui possono derivare errori banali o difficili da individuare e peggiore leggibilità.
Inoltre ricordiamoci che l’accesso alle variabili locali è più di quello alle globali.
NON TRASCURATE IL CASTING
Sia per i parametri di input in una funzione che per i valori in output è importante specificare CHIARAMENTE il tipo e controllarlo all’inserimento.
In caso di errore a run-time sarà più semplice capire se dipendente dal tipo errato di variabile, piuttosto che essere costretti a scorrere tutta la funzione.
OTTIMIZZATE I CICLI
Nel caso di cicli evitate di calcolare i valori massimi nel ciclo stesso, come for (i=0; i < count($array); i++), poichè il metodo verrebbe richiamato ogni volta.
Meglio valorizzate una variabile fuori dal ciclo per passarla come valore massimo.
NON CREARE TROPPE FUNZIONI
E’ utile separare l’applicazione in diverse funzioni da richiamare all’occorrenza ma valutiamo bene e prima, sia per leggibilità di codice che velocità di esecuzione, quali sono quelle che vale la pena separare per il numero di volte richiamate.
Poi, nel caso di cicli, se la funzione che richiamiamo internamente non è troppo lunga, forse è meglio scrivere quelle righe all’interno che richiamarle sempre all’esterno.
ANALISI DELLE GUARDIE
Nel caso di guardie IF con operatori logici (AND, OR) valutare bene l’ordine degli argomenti.
Caso AND
data la condizione if(cond1 && cond2), nel caso in cui cond1 sia falso, cond2 non verrà nemmeno considerato dall’operatore poichè il risultato è già calcolabile.-
Quindi ottimizziamo il codice ponendo l’argomento col più alto tasso di probabilità di ottenere un false in prima posizione o, nel caso in cui il verificarsi dei 2 argomenti abbia la stessa percentuale di successo, scegliamo il meno impegnativo come il primo ad essere eseguito.
Caso OR
data la condizione if(cond1 || cond2), nel caso in cui cond1 sia vero, cond2 non verrà nemmeno considerato dall’operatore poichè il risultato è già calcolabile.
Quindi ottimizziamo il codice ponendo l’argomento col più alto tasso di probabilità di ottenere un true in prima posizione o, nel caso in cui il verificarsi dei 2 argomenti abbia la stessa percentuale di successo, scegliamo il meno impegnativo come il primo ad essere eseguito.